버전 관리와 Git 기본 이해
버전 관리의 개념과 필요성, Git의 기본 구조와 명령어, 협업 전략까지 정리합니다.
버전 관리와 Git 기본 이해
1. 버전 관리란?
- 코드, 문서 등 파일의 변경 이력(버전)을 기록하고 관리하는 시스템
- 협업 및 변경 추적을 위해 필수
2. 버전 관리가 필요한 이유
- 과거 상태로 되돌리기 가능 (Rollback)
- 변경 내용 추적 및 리뷰
- 여러 사람이 동시에 작업 가능
- 충돌 방지 및 해결
3. 버전 관리 방식
로컬 버전 관리
- 개인 PC 내에서만 관리
- 예: 파일 복사 → v1, v2 등
중앙 집중식 버전 관리 (CVCS)
- 중앙 서버에 저장
- 예: SVN
분산형 버전 관리 (DVCS)
- 각 사용자가 전체 이력 복사본 소유
- 예: Git, Mercurial
4. Git: 대표적인 분산형 버전 관리
- 전 세계적으로 가장 널리 사용
- 로컬, 원격 저장소 모두에 기록
- 브랜치, 병합, 충돌 해결 지원
5. Git 기본 작업 흐름
저장소 생성 (init, clone)
변경 사항 스테이징 (add)
커밋 (commit)
원격 저장소 동기화 (push/pull)
브랜치 관리 (branch, merge)
6. Git 핵심 개념
용어 | 설명 |
---|---|
Commit | 하나의 변경 이력 단위 |
Branch | 독립적인 작업 공간 |
Merge | 변경 내용을 통합 |
Conflict | 병합 충돌 |
Tag | 특정 시점 스냅샷, 버전 표시 |
7. 협업 시 주요 전략
- 기능 브랜치 전략 (Feature Branch)
- Pull Request(PR)을 통한 코드 리뷰
- 충돌 최소화를 위한 자주 동기화
8. Git 설치 방법
Windows
Git 공식 사이트 → Download for Windows
설치 파일 실행 → Next로 진행
설치 후 Git Bash에서
git --version
확인
macOS (Homebrew 권장)
1
2
brew install git
git --version
또는:
1
xcode-select --install
Linux (Ubuntu 예시)
1
2
3
sudo apt update
sudo apt install git
git --version
9. 주요 명령어 요약
저장소 초기화 및 복제
git init
— 새 로컬 저장소 생성git clone <URL>
— 원격 저장소 복제
상태 확인
git status
— 변경/스테이징 여부 확인
변경 기록
git add <파일명>
— 스테이징git commit -m "메시지"
— 커밋 생성
원격 저장소 동기화
git push
— 업로드git pull
— 가져오기 및 병합
이력 확인
git log
— 커밋 히스토리git log --graph --oneline --all
— 브랜치 그래프 시각화
10. 브랜치(Branch)
- 독립된 작업 공간 생성
- 기능 개발, 버그 수정 등 분리된 작업 가능
- 병합(Merge)으로 메인 브랜치에 통합
명령어 예시:
1
2
git branch feature-branch
git checkout feature-branch
11. Merge와 충돌 해결
- Merge: 브랜치 변경 통합
- Conflict: 같은 부분이 다를 때 발생
1
git merge <브랜치명>
- Fast-forward: 직선 히스토리 병합
- 3-way Merge: 병합 커밋 생성
12. Rebase와 Merge 비교
구분 | Merge | Rebase |
---|---|---|
히스토리 | 분기점 유지 | 직선 정리 |
충돌 처리 | 한 번 | 여러 번 가능 |
특징 | 기록 보존 | 깔끔한 이력 |
13. Tag
- 특정 커밋을 버전으로 표시
1
2
git tag v1.0.0
git push origin v1.0.0
14. 원격 저장소 관리
git remote add origin <URL>
— 원격 저장소 등록git remote -v
— 원격 정보 확인
15. 협업 Best Practice
- 작은 단위로 자주 커밋
- 일관된 커밋 메시지
- Pull Request 기반 코드 리뷰
- main/master 브랜치 직접 작업 지양
16. 간단한 실습 예제
- 새 저장소 생성
1
2
3
mkdir my-repo
cd my-repo
git init
- 파일 작성 및 추가
1
2
3
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"
- 원격 저장소 연결
1
2
git remote add origin <URL>
git push -u origin main
- 브랜치 생성 및 병합
1
2
3
4
5
6
7
8
git branch feature
git checkout feature
echo "More details" >> README.md
git add README.md
git commit -m "Add details"
git checkout main
git merge feature
git push
17. 요약
- Git은 분산형 버전 관리의 표준 도구
- 스테이징 → 커밋 → 푸시의 단계 이해
- 브랜치와 Merge로 효율적 협업
- Rebase, Tag로 깔끔한 이력 관리
- Pull Request 문화로 코드 품질 유지
This post is licensed under CC BY 4.0 by the author.