Git 브랜치 삭제 명령어 정리
Git을 사용하다 보면 기능 개발이나 버그 수정을 위해 여러 브랜치를 만들게 됩니다.
작업이 끝난 브랜치를 계속 남겨두면 로컬과 원격 저장소의 브랜치 목록이 복잡해질 수 있으므로, 필요 없는 브랜치는 주기적으로 정리하는 것이 좋습니다.
이번 글에서는 로컬 브랜치, 원격 브랜치, 로컬에 남아 있는 원격 브랜치 정보를 삭제하는 방법을 정리합니다.
로컬 브랜치 삭제
로컬에 있는 브랜치는 다음 명령어로 삭제할 수 있습니다.
git branch -D <branch_name>
예를 들어 feature/login 브랜치를 삭제하려면 다음과 같이 실행합니다.
git branch -D feature/login
-D 옵션은 강제 삭제 옵션입니다.
해당 브랜치가 아직 merge되지 않았더라도 삭제할 수 있으므로, 정말 삭제해도 되는 브랜치인지 확인한 뒤 사용하는 것이 좋습니다.
보다 안전하게 삭제하려면 -d 옵션을 사용할 수 있습니다.
git branch -d <branch_name>
-d 옵션은 merge되지 않은 브랜치를 삭제하려고 할 때 경고를 표시합니다.
원격 브랜치 삭제
원격 저장소에 올라가 있는 브랜치는 다음 명령어로 삭제할 수 있습니다.
git push origin --delete <branch_name>
예를 들어 원격 저장소의 feature/login 브랜치를 삭제하려면 다음과 같이 실행합니다.
git push origin --delete feature/login
이 명령어는 origin 원격 저장소에 있는 브랜치를 삭제합니다.
협업 중인 브랜치라면 다른 사람이 사용하고 있지 않은지 확인한 뒤 삭제하는 것이 좋습니다.
로컬에 남아 있는 원격 브랜치 정보 정리
원격 브랜치를 삭제해도 로컬에는 origin/브랜치명 형태의 원격 추적 브랜치 정보가 남아 있을 수 있습니다.
이때는 다음 명령어로 정리할 수 있습니다.
git fetch --prune
이 명령어는 원격 저장소에서 이미 삭제된 브랜치 정보를 로컬에서도 정리합니다.
예를 들어 원격에서 feature/login 브랜치가 삭제되었는데 로컬에서 여전히 origin/feature/login이 보인다면, git fetch --prune을 실행해 정리할 수 있습니다.
머지된 로컬 브랜치 삭제
Git은 브랜치가 merge되었다고 해서 로컬 브랜치를 자동으로 삭제하지 않습니다.
따라서 작업이 끝난 브랜치는 직접 정리해야 합니다.
현재 main 브랜치에 merge된 로컬 브랜치는 다음 명령어로 확인할 수 있습니다.
git branch --merged main | grep -v main
이 명령어는 main 브랜치에 이미 merge된 브랜치 목록을 출력합니다.
삭제하기 전에 먼저 이 명령어로 어떤 브랜치가 대상인지 확인하는 것이 안전합니다.
확인 후 실제로 삭제하려면 다음 명령어를 실행합니다.
git branch --merged main | grep -v main | xargs -n 1 git branch -d
이 명령어는 main에 merge된 브랜치 중 main 브랜치를 제외한 나머지 브랜치를 하나씩 삭제합니다.
명령어별 정리
목적 명령어
| 로컬 브랜치 강제 삭제 | git branch -D <branch_name> |
| 로컬 브랜치 안전 삭제 | git branch -d <branch_name> |
| 원격 브랜치 삭제 | git push origin --delete <branch_name> |
| 삭제된 원격 브랜치 정보 정리 | git fetch --prune |
| merge된 브랜치 확인 | git branch --merged main \| grep -v main |
| merge된 로컬 브랜치 삭제 | git branch --merged main \| grep -v main \| xargs -n 1 git branch -d |
정리
Git 브랜치는 작업 단위를 나누는 데 유용하지만, 사용하지 않는 브랜치를 계속 남겨두면 관리가 어려워질 수 있습니다.
브랜치를 정리할 때는 다음 순서로 진행하는 것이 좋습니다.
- 삭제할 브랜치가 merge되었는지 확인한다.
- 로컬 브랜치를 삭제한다.
- 필요하다면 원격 브랜치도 삭제한다.
- git fetch --prune으로 로컬에 남은 원격 브랜치 정보를 정리한다.
특히 여러 사람이 함께 사용하는 저장소에서는 원격 브랜치를 삭제하기 전에 해당 브랜치를 다른 사람이 사용하고 있지 않은지 확인하는 것이 좋습니다.
Reference
'Git' 카테고리의 다른 글
| Git Hook으로 브랜치 이슈 번호를 커밋 메시지에 자동 추가하기 (0) | 2026.05.20 |
|---|