Git 브랜치 관련 핵심 명령어 정리

wldbs._.·2026년 4월 28일

SW

목록 보기
11/16
post-thumbnail

브랜치는 협업과 기능 개발의 핵심 축이다.
단순 명령어 나열보다 포인터 이동 + 커밋 그래프 관점으로 이해하는 게 실무에서 훨씬 유효하다.


브랜치 관련 핵심 명령어 정리

1. git branch

역할

브랜치 생성 / 조회 / 삭제

핵심 원리

  • 브랜치는 특정 커밋을 가리키는 포인터
  • 새 브랜치는 현재 HEAD 위치를 그대로 복사
git branch              # 브랜치 목록 조회
git branch feature      # 브랜치 생성
git branch -d feature   # 브랜치 삭제

특징

  • 생성은 가볍고 빠름 (단순 포인터 생성)
  • 삭제는 병합 여부 검사 (-d vs -D)

2. git checkout

역할

브랜치 이동 또는 특정 커밋으로 전환

동작 원리

  • HEAD가 가리키는 브랜치를 변경
  • Working Directory 내용도 해당 브랜치 상태로 변경
git checkout feature
git checkout -b feature  # 생성 + 이동

특징

  • 과거 커밋 checkout 시 Detached HEAD 상태 발생

3. git switch (권장)

역할

브랜치 전환 전용 명령어 (checkout 대체)

git switch feature
git switch -c feature

특징

  • checkout보다 명확한 역할 분리
  • 실무에서는 switch 사용 권장

4. git merge

역할

다른 브랜치의 변경사항을 현재 브랜치로 통합

동작 원리

1) Fast-forward

  • 단순 포인터 이동

2) 3-way merge

  • 공통 조상 기준으로 병합
  • merge commit 생성
git merge feature

특징

  • 충돌(conflict) 발생 가능
  • 히스토리 보존

5. git rebase

역할

브랜치의 base를 변경하여 히스토리를 재정렬

동작 원리

  • 기존 커밋을 새로운 base 위에 재적용(replay)
git rebase main

특징

  • 히스토리 직선화 (linear history)
  • 충돌 발생 시 단계별 해결 필요
  • 공유 브랜치에서는 사용 주의

6. git cherry-pick

역할

특정 커밋 하나만 선택적으로 적용

git cherry-pick <commit_hash>

특징

  • 필요한 변경만 가져올 때 유용
  • 커밋 중복 가능성 존재

7. git branch -vv / 추적 브랜치

역할

로컬 브랜치와 원격 브랜치의 연결 상태 확인

git branch -vv

개념

  • tracking branch

    • 로컬 ↔ 원격 브랜치 매핑
    • pull/push 기본 대상

8. git push -u (upstream 설정)

git push -u origin feature

특징

  • 이후 git push, git pull 간소화
  • upstream 자동 설정

9. 브랜치 전략 (실무 관점)

1) Git Flow

  • main / develop / feature / release / hotfix

2) Trunk-based

  • main 중심 + 짧은 feature 브랜치

선택 기준

  • 팀 규모 / 배포 주기 / CI/CD 성숙도

10. merge vs rebase 비교

항목mergerebase
히스토리분기 유지직선
커밋 보존그대로 유지재작성
협업 안정성높음낮음
가독성낮을 수 있음높음

11. 핵심 구조 요약

  • 브랜치 = 커밋 포인터
  • HEAD = 현재 작업 위치
  • merge = 브랜치 합치기
  • rebase = 커밋 재배치

12. 실무 팁

  • feature 브랜치는 짧게 유지
  • main에는 직접 commit 금지
  • rebase는 개인 브랜치에서만 사용
  • merge 전 pull/rebase로 최신화

참고 자료


3줄 요약

  • 브랜치는 커밋을 가리키는 포인터이며 checkout/switch로 이동한다
  • merge는 병합, rebase는 히스토리 재정렬이라는 구조적 차이가 핵심
  • 협업에서는 merge 중심, 개인 작업에서는 rebase 활용이 안전하다
profile
공부 기록용 & 프로젝트 회고용 24.08.05~ #AI/LLM #RAG

0개의 댓글