Git Remote-Tracking Branch 개념 및 비유

Source

  • Evernote/Advanced View Required/인턴부터 노땅까지 즐기는 Git 강좌 “remote-tracking branch” 13.md

Summary

이 문서는 Git의 ‘remote-tracking branch’ 개념을 고등학교 시험지 비유를 통해 설명한다. 원격 저장소(담임)에서 받은 문제지 복사본이 remote-tracking branch(읽기 전용, 기준점)이며, 이를 다시 복사해 수정하는 것이 로컬 tracking branch(작업용)이다. git fetch는 문제지 받기, git merge는 변경사항 옮겨적기, git pull은 fetch+merge, git push는 수정 전송 후 다시 fetch+merge에 해당한다. Git은 분산 관리 철학에 따라 네트워크 단절 시에도 로컬에서 작업할 수 있도록 설계되었으며, remote-tracking branch는 원격지 상태를 추적하는 읽기 전용 기준점으로 push/pull 시 자동으로 업데이트된다.

Key Points

  • Remote-tracking branch: 원격 저장소 상태를 로컬에서 추적하는 읽기 전용 브랜치 (예: refs/remotes/origin/master)
  • Tracking branch: 사용자가 직접 수정하는 로컬 작업 브랜치 (예: refs/heads/master)
  • 비유: 원격 저장소=담임, remote-tracking branch=담임이 준 문제지 복사본(읽기전용), tracking branch=학생이 낙서하는 카피본
  • git fetch: 원격 저장소 변경사항만 로컬 remote-tracking branch에 반영
  • git merge: 로컬 브랜치에 변경사항 통합
  • git pull: fetch + merge의 복합 명령
  • git push: 로컬 변경사항 원격 전송 후, 원격지 최신 상태를 다시 fetch하여 remote-tracking branch 업데이트
  • git clone: 원격 브랜치 fetch + remote-tracking branch 생성 + 로컬 tracking branch 생성의 복합 과정
  • Git 설계 철학: 분산 소스 관리, 네트워크 단절 시에도 로컬에서 완전한 소스 관리 가능
  • origin: 원격지 URL의 별칭, .git/config에서 설정 가능