Git: 로컬 브랜치 삭제하기
마지막 업데이트
브랜치의 작업이 병합되면 git branch -d <branch>로 삭제합니다. 브랜치에 어디에도 병합되지 않은 커밋이 있으면 Git은 삭제를 거부합니다 - 안전 장치입니다. 그래도 삭제하려면 대문자 -D를 사용하세요. 로컬 브랜치를 삭제해도 원격의 사본에는 전혀 영향을 주지 않습니다. 그것은 별도의 명령입니다.
이것들을 터미널 플레이그라운드에서 실행해 보세요 - 브라우저 안의 진짜 셸이며, 설치할 것이 없습니다.
문법
| Command | What it does |
|---|---|
git branch -d feature | feature 삭제 (병합된 경우에만) |
git branch -D feature | 병합되지 않았더라도 feature 강제 삭제 |
git branch -d branch1 branch2 | 여러 브랜치를 한 번에 삭제 |
흔한 경우
| Goal | Command |
|---|---|
| 병합된 브랜치 삭제 | git branch -d old-feature |
| 병합되지 않은 브랜치 강제 삭제 | git branch -D scratch |
| 현재 있는 브랜치 삭제 | git switch main 후 git branch -d feature |
| 어떤 브랜치가 병합되었는지 확인 | git branch --merged |
실습 예제
기능을 완성하고 병합한 뒤 로컬 브랜치를 정리합니다.
| Step | Command | Result |
|---|---|---|
| 1 | git switch main | 삭제하려는 브랜치에서 벗어나기 |
| 2 | git merge feature | 기능의 커밋을 main으로 가져오기 |
| 3 | git branch -d feature | 이제 병합된 브랜치 삭제 |
Git 로컬 브랜치 삭제 자주 묻는 질문
git branch -d와 -D의 차이는 무엇인가요?
-d는 안전한 삭제입니다. Git은 브랜치의 커밋이 이미 다른 브랜치에 병합된 경우에만 브랜치를 제거하므로 실수로 작업을 잃지 않습니다. -D는 강제 삭제(--delete --force의 축약형)로, 병합되지 않은 커밋이 있더라도 무조건 브랜치를 제거합니다. 기본적으로 -d를 사용하고, 브랜치의 커밋을 정말로 버리고 싶다고 확신할 때만 -D를 사용하세요.현재 있는 브랜치를 삭제하려면 어떻게 하나요?
체크아웃된 브랜치는 삭제할 수 없습니다. 먼저
git switch main(또는 git checkout main)으로 다른 브랜치로 전환한 다음 git branch -d feature를 실행하세요. 현재 브랜치를 삭제하려고 하면 Git은 "Cannot delete branch ... checked out" 오류를 냅니다.로컬 브랜치를 삭제하면 GitHub에서도 삭제되나요?
아니요.
git branch -d는 브랜치를 로컬 저장소에서만 제거합니다. 원격(GitHub, GitLab 등)의 브랜치는 git push origin --delete feature로 별도로 삭제할 때까지 남아 있습니다.삭제한 브랜치를 복구할 수 있나요?
보통은 가능합니다. 최근에 삭제했다면요.
git reflog를 실행해 브랜치가 가리키던 커밋을 찾은 다음 git branch feature <commit-hash>로 다시 만드세요. 커밋은 즉시 가비지 컬렉션되지 않으므로, 실수로 삭제한 브랜치는 대개 복원할 수 있습니다.이것을 온라인에서 연습할 수 있나요?
네. 터미널 플레이그라운드를 열면 이 명령들을 브라우저 안의 진짜 셸에서 실행할 수 있습니다 - 설치할 것이 없습니다. 체계적으로 배우고 싶다면, Coddy의 무료 인터랙티브 Git 강좌가 첫 커밋부터 브랜칭과 병합까지 단계별로 안내합니다.