git branch
한 줄 요약
브랜치를 생성, 삭제, 목록 조회
선행 지식
- Branch란 - 브랜치의 개념
기본 사용법
# 브랜치 목록 보기
git branch
# 브랜치 생성
git branch <브랜치명>
# 브랜치 삭제
git branch -d <브랜치명>주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
| (없음) | 로컬 브랜치 목록 | git branch |
-a / --all | 모든 브랜치 (원격 포함) | git branch -a |
-r / --remote | 원격 브랜치만 | git branch -r |
-v / --verbose | 마지막 커밋 정보 포함 | git branch -v |
-d | 브랜치 삭제 (병합된 것만) | git branch -d feature |
-D | 브랜치 강제 삭제 | git branch -D feature |
-m | 브랜치 이름 변경 | git branch -m old new |
실제 예제
브랜치 목록 보기
$ git branch
develop
feature/login
* main # * 표시가 현재 브랜치원격 브랜치 포함 보기
$ git branch -a
develop
* main
remotes/origin/develop
remotes/origin/main상세 정보 보기
$ git branch -v
develop a1b2c3d feat: 새 기능 추가
feature/login 9x8y7z6 fix: 로그인 버그 수정
* main 5w4v3u2 Merge branch 'develop'브랜치 생성
# 현재 위치에서 새 브랜치 생성
git branch feature/signup
# 특정 커밋에서 브랜치 생성
git branch hotfix a1b2c3d
# 생성과 동시에 전환
git switch -c feature/signup
# 또는
git checkout -b feature/signup생성만 vs 생성+전환
git branch feature→ 생성만 (현재 브랜치 유지)git switch -c feature→ 생성 + 전환
브랜치 삭제
# 병합된 브랜치 삭제
git branch -d feature/login
# Deleted branch feature/login (was a1b2c3d).
# 병합 안 된 브랜치 강제 삭제
git branch -D experimental-d vs -D
-d: 병합된 브랜치만 삭제 (안전)-D: 강제 삭제 (작업 내용 유실 가능)
브랜치 이름 변경
# 현재 브랜치 이름 변경
git branch -m new-name
# 특정 브랜치 이름 변경
git branch -m old-name new-name브랜치 비교
# 두 브랜치 간 차이 커밋
git log main..feature
# main에는 없고 feature에만 있는 커밋
git log main..feature --oneline
# feature에는 없고 main에만 있는 커밋
git log feature..main --oneline병합된 브랜치 확인
# main에 병합된 브랜치들
git branch --merged main
# 아직 병합 안 된 브랜치들
git branch --no-merged main삭제해도 안전한 브랜치 확인에 유용합니다:
# 병합된 브랜치들 삭제 (main, develop 제외)
git branch --merged | grep -v "main\|develop" | xargs git branch -d브랜치 네이밍 규칙
권장 형식
타입/설명
예시:
feature/user-authentication
bugfix/login-error
hotfix/security-patch
release/v1.2.0
주의사항
# ❌ 피해야 할 이름
git branch "my branch" # 공백
git branch feature..login # 연속 점
git branch ~feature # 특수문자
# ✅ 좋은 이름
git branch feature/login
git branch fix/issue-123
git branch release-v1.0자주 하는 실수
현재 브랜치를 삭제하려고 함
$ git branch -d main
error: Cannot delete branch 'main' checked out해결: 다른 브랜치로 전환 후 삭제
git switch develop
git branch -d main병합 안 된 브랜치 삭제 시 에러
$ git branch -d feature
error: The branch 'feature' is not fully merged.선택:
- 먼저 병합:
git merge feature - 강제 삭제:
git branch -D feature(작업 유실!)
원격 브랜치 삭제 방법
# 원격 브랜치 삭제
git push origin --delete feature/old-branch관련 명령어
- git checkout과 switch - 브랜치 전환
- git merge - 브랜치 병합
- git log - 브랜치 히스토리 확인
더 알아보기
- Branch란 - 브랜치 개념
- Remote란 - 원격 브랜치
- Pull Request란 - 브랜치와 PR