티스토리 뷰
728x90
반응형
요즘 코드는 Git으로 관리하는 것 같아서 Git 을 설치해보려 함.
우선 Git이 뭔지 부터 알아보자.
--------
Git(깃)은 소스코드 버전 관리 도구입니다. 간단히 말해, 프로젝트의 소스코드를 효율적으로 관리하고 추적할 수 있게 도와주는 소프트웨어예요.
--------
🟢 Git을 쓰면 좋은 점
- 버전 관리(Version Control)
코드의 변경 이력을 저장하고 이전 상태로 언제든 복구 가능하게 합니다. - 변경사항 추적 및 비교(History Tracking)
누가, 언제, 어떤 부분을 변경했는지 쉽게 알 수 있습니다. - 협업 지원(Collaboration)
여러 사람이 동시에 코드 작업을 해도 충돌 없이 효율적으로 병합할 수 있습니다. - 백업 및 복구(Backup & Restore)
코드가 잘못되었을 때 이전으로 쉽게 돌아갈 수 있어요. - 브랜치 관리(Branch Management)
개발과 테스트를 독립적으로 진행할 수 있고, 기능별로 나눠서 개발할 수 있어요.
📌 Git의 핵심 개념
개념 | 설명 |
Repository | 프로젝트의 모든 파일과 히스토리를 담는 저장소 |
Commit | 코드 변경사항을 기록하는 작업 |
Branch | 독립적인 작업 환경을 만드는 별도의 코드 라인 |
Merge | 서로 다른 브랜치를 하나로 합치는 작업 |
Clone | 원격 저장소의 복사본을 로컬로 가져오는 작업 |
Pull | 원격 저장소에서 최신 버전을 가져오는 작업 |
Push | 내 변경 사항을 원격 저장소에 올리는 작업 |
📝 Git 사용 흐름 예시
간단히 작업 흐름을 보여드릴게요:
# 저장소 생성 (처음 한 번만)
git init
# 변경 사항 추가
git add .
# 변경 사항 저장 (commit)
git commit -m "변경 내용에 대한 메시지"
# 원격 저장소로 내 변경사항 올리기
git push
🌐 GitHub, GitLab과의 관계
- Git은 **소프트웨어(도구)**입니다.
- GitHub, GitLab 등은 Git을 활용한 웹 기반 호스팅 서비스로, 원격 저장소를 제공하고 협업 환경을 지원해줍니다.
즉, Git을 통해 관리한 코드를 GitHub, GitLab 같은 서비스에 올려 다른 사람들과 쉽게 공유하고 협업할 수 있어요
예전엔 SVN 이라는걸 많이 썼던거 같은데.. SVN하고 차이는 뭐지?
✅ Git vs. SVN 핵심 차이점 요약
구분 | Git | SVN |
저장소 방식 | 분산형 (Distributed) | 중앙집중형 (Centralized) |
작동 방식 | 모든 작업자가 전체 저장소의 사본을 가짐 | 서버에만 전체 저장소가 있고, 로컬엔 작업 파일만 존재 |
브랜치(Branch) | 브랜치 작업이 매우 빠르고 유연 | 브랜치 작업이 비교적 느리고 복잡 |
속도 | 빠름 (로컬에서 대부분 작업 수행) | 상대적으로 느림 (서버와 상호작용 필요) |
오프라인 작업 | 가능 | 제한적 |
병합(Merge) 효율성 | 높음 (브랜치 병합이 용이) | 낮음 (충돌 시 다소 복잡한 병합 과정 필요) |
학습 난이도 | 초기에 조금 더 높음 | 상대적으로 쉬움 |
변경 사항 추적 | 변경 사항을 커밋 해시(Hash)로 관리 | 변경 사항을 버전 번호(Revision)로 관리 |
파일 관리 | 파일 상태를 전체 스냅샷으로 저장 | 변경 사항만 저장 (증분 관리) |
커뮤니티와 생태계 | 커뮤니티가 크고, 서드파티 도구가 매우 다양 | 상대적으로 작고 점차 감소하는 추세 |
🔹 Git의 장점 및 특징
- 분산형 관리
- 각 개발자가 전체 저장소를 복제해 로컬에서 독립적으로 작업 가능
- 서버 문제가 생겨도 로컬에서 언제든 복구 가능
- 빠르고 유연한 브랜치 및 병합
- 브랜치를 만들고 병합하는 것이 간단하고 빠르며, 기능별 개발에 유리
- 로컬 작업 지원
- 인터넷 연결 없이도 작업 및 커밋 가능
- 강력한 병합과 충돌 관리
- 충돌 발생 시 비교적 효율적으로 관리 가능
- 오픈소스 생태계 및 도구 지원
- GitHub, GitLab, Bitbucket 등 풍부한 플랫폼 지원과 다양한 협업 툴 존재
🔸 SVN의 장점 및 특징
- 중앙 집중식 관리
- 관리 및 운영이 상대적으로 쉽고 명료 (하나의 서버에 모든 코드 존재)
- 단순한 구조
- 초기 학습 난이도가 상대적으로 낮아 이해하기 쉬움
- 부분적인 체크아웃(Checkout) 지원
- 특정 디렉터리만 체크아웃 가능(큰 프로젝트에 유리)
- 직관적인 버전번호 관리
- 변경 이력을 번호로 구분해 직관적
🚩 어떤 경우에 Git을 써야 할까?
- 여러 사람이 동시에 협업이 많을 때
- 분산되어 있고 빠른 개발 속도가 필요할 때
- 브랜치를 자주 만들어 병합하며 기능 단위로 개발할 때
- 인터넷 연결 없이 작업이 필요할 때
🚩 어떤 경우에 SVN을 써야 할까?
- 중앙 집중형의 간단하고 명확한 구조를 원할 때
- 큰 프로젝트 중 특정 디렉터리만 관리할 필요가 있을 때
- Git의 복잡성을 부담스럽게 느낄 때
🟢 결론 및 추천
- 최근 트렌드는 대부분의 프로젝트가 Git을 채택하고 있습니다.
- Git은 특히 오픈소스 개발, 분산형 협업이 많은 환경에서 강력합니다.
- SVN은 관리가 간단한 소규모 프로젝트 또는 중앙 집중식 환경에 적합합니다.
일반적으로 새롭게 배우거나 사용하는 환경이라면 Git을 사용하는 것이 미래를 고려했을 때 더 좋습니다.
무료 Git 서비스 비교 (GitHub, GitLab, Bitbucket)
무료 Git 서비스 비교 (GitHub, GitLab, Bitbucket)
대표적인 무료 Git 서비스로는 다음 세 가지가 있습니다.GitHubGitLabBitbucket📌 1. GitHubhttps://github.com장점단점✔️ 가장 널리 쓰이는 서비스 (대중성 최고)❌ 일부 고급 기능(예: GitHub Actions)은 제한된
archive-box.tistory.com
728x90
반응형
LIST
'Study > Python' 카테고리의 다른 글
GitHub 설치 따라하기 (0) | 2025.05.04 |
---|---|
무료 Git 서비스 비교 (GitHub, GitLab, Bitbucket) (1) | 2025.05.04 |
[Python] VS Code 환경설정 하기 (1) | 2025.01.27 |
[Python Study] 2일차 - 조건문과 반복문 입문 (2) | 2025.01.26 |
Pandas가 뭐지? (1) | 2025.01.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 어휘
- Daily English
- 2차방정식
- 영어공부
- 일일영어
- 회화
- ai스터디
- 연습문제
- Study
- 머신러닝
- AI학습
- 1차방정식
- 일차방정식
- 파이썬
- 영어초보
- 인공지능
- 방정식
- 리딩
- 연립방정식
- 선형회기
- Ai
- 수학초보
- 영어학습
- 초등수학
- Python
- 데일리잉글리쉬
- 학습
- 데일리영어
- 수학공부
- 초급영어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함
반응형