Git 브랜치는 특정 커밋을 가리키며 새 커밋을 만들 때 앞으로 이동하는 이름표다. 프로젝트 폴더 전체를 별도로 복사하는 개념과 달리, 동일한 저장소 안에서 여러 개발 흐름을 관리한다. Git에서 작은 기능을 독립적으로 작업하고 나중에 합치는 기반이 된다. 공식 브랜치 설명
브랜치와 HEAD
커밋에는 파일 상태와 부모 커밋 정보가 담긴다. 브랜치는 그 이력의 끝을 가리키며, HEAD는 보통 현재 작업 중인 브랜치를 가리킨다. 브랜치를 전환하면 해당 커밋에 맞춰 작업 트리의 추적 파일이 바뀐다. 미완료 변경이 있을 때 전환이 충돌할 수 있으므로, 먼저 상태를 확인하고 작업을 정리하는 습관이 유용하다.
기능별 작업 예시
문서 검색과 로그인 개선을 동시에 개발한다면 각각 별도의 브랜치에 변경을 모을 수 있다. 이름은 목적을 드러내는 정도로 간결하게 정하고, 긴 기간 방치하기보다 기준 브랜치의 변화를 주기적으로 확인한다. 완성한 변경은 풀 리퀘스트로 검토한 뒤 병합한다.
| 예시 이름 | 담을 변경 |
|---|---|
| feature/search-filter | 검색 필터 추가 |
| fix/login-message | 로그인 오류 문구 수정 |
| docs/api-guide | API 사용 안내 개선 |
한 브랜치에 서로 무관한 수정이 섞이면 리뷰와 되돌리기가 어려워진다. 반대로 작은 수정 하나마다 지나치게 복잡한 승인 절차를 만드는 것도 피해야 한다.
격리의 범위
브랜치는 코드 이력을 나누지만 실행 환경 전체를 격리하지 않는다. 같은 로컬 데이터베이스나 외부 API를 사용하면 서로 영향을 줄 수 있다. 브랜치별 테스트 서버가 필요하면 별도의 작업 디렉터리, 데이터, 설정을 함께 준비해야 한다. 여러 작업 트리로 브랜치를 동시에 펼치는 방법은 Git worktree 문서에 설명되어 있다. 브랜치가 있다는 이유만으로 운영에 영향을 주지 않는다고 판단해서는 안 된다.