Post

버전 관리와 Git 기본 이해

버전 관리의 개념과 필요성, Git의 기본 구조와 명령어, 협업 전략까지 정리합니다.

버전 관리와 Git 기본 이해

1. 버전 관리란?

  • 코드, 문서 등 파일의 변경 이력(버전)을 기록하고 관리하는 시스템
  • 협업 및 변경 추적을 위해 필수

2. 버전 관리가 필요한 이유

  • 과거 상태로 되돌리기 가능 (Rollback)
  • 변경 내용 추적 및 리뷰
  • 여러 사람이 동시에 작업 가능
  • 충돌 방지 및 해결

3. 버전 관리 방식

로컬 버전 관리

  • 개인 PC 내에서만 관리
  • 예: 파일 복사 → v1, v2 등

중앙 집중식 버전 관리 (CVCS)

  • 중앙 서버에 저장
  • 예: SVN

분산형 버전 관리 (DVCS)

  • 각 사용자가 전체 이력 복사본 소유
  • 예: Git, Mercurial

4. Git: 대표적인 분산형 버전 관리

  • 전 세계적으로 가장 널리 사용
  • 로컬, 원격 저장소 모두에 기록
  • 브랜치, 병합, 충돌 해결 지원

5. Git 기본 작업 흐름

  1. 저장소 생성 (init, clone)

  2. 변경 사항 스테이징 (add)

  3. 커밋 (commit)

  4. 원격 저장소 동기화 (push/pull)

  5. 브랜치 관리 (branch, merge)


6. Git 핵심 개념

용어설명
Commit하나의 변경 이력 단위
Branch독립적인 작업 공간
Merge변경 내용을 통합
Conflict병합 충돌
Tag특정 시점 스냅샷, 버전 표시

7. 협업 시 주요 전략

  • 기능 브랜치 전략 (Feature Branch)
  • Pull Request(PR)을 통한 코드 리뷰
  • 충돌 최소화를 위한 자주 동기화

8. Git 설치 방법

Windows

  1. Git 공식 사이트Download for Windows

  2. 설치 파일 실행 → Next로 진행

  3. 설치 후 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 비교

구분MergeRebase
히스토리분기점 유지직선 정리
충돌 처리한 번여러 번 가능
특징기록 보존깔끔한 이력

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. 새 저장소 생성
1
2
3
mkdir my-repo
cd my-repo
git init
  1. 파일 작성 및 추가
1
2
3
echo "# My Project" > README.md
git add README.md
git commit -m "Initial commit"
  1. 원격 저장소 연결
1
2
git remote add origin <URL>
git push -u origin main
  1. 브랜치 생성 및 병합
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.