Github
[Git] 브랜치 삭제 명령어 (로컬, 원격)
jeong_ii
2025. 3. 19. 22:52
보통 하나의 Git 리포지토리에는 여러 개의 브랜치가 존재한다.
브랜치를 활용하면 메인 코드 베이스를 변경하지 않고, 새로운 기능을 개발하거나 버그를 수정할 수 있다.
일반적으로 하나의 메인 브랜치(main 또는 master)를 기준으로, 개발자들은 각자의 작업을 위해 별도의 브랜치를 생성한다.
작업이 완료된 브랜치는 브랜치 목록을 깔끔하게 유지하기 위해 삭제하는 것이 좋다.
🔷 로컬에서 브랜치 삭제하기
현재 내가 위치한 브랜치는 삭제할 수 없다.
따라서 먼저 삭제 대상이 아닌 다른 브랜치(예 : main)로 이동해야 한다.
git checkout main
✅ 브랜치 삭제 명령어
git branch -d <branch-name>
✅ 예시
git branch -d fix/authentication
- -d 옵션은 해당 브랜치가 병합(Merged)된 경우에만 삭제된다.
- 병합되지 않은 브랜치를 삭제하려고 하면 에러가 발생한다.
- 이 경우 -D 옵션을 사용하면 병합되지 않았더라도 강제로 삭제할 수 있다.
🔷 원격에서 브랜치 삭제하기
✅ 일반적인 브랜치 삭제 명령어
git push <remote> --delete <branch>
✅ 예시
git push origin --delete fix/authentication
✅ 짧은 버전 명령어
git push <remote> :<branch>
✅ 예시
git push origin :fix/authentication
- <branch-name> 앞에 :(콜론)를 붙이면 해당 브랜치를 원격에서 삭제할 수 있다.
⚠️ 삭제 중 에러가 발생할 경우
error: unable to push to unqualified destination: remoteBranchName
The destination refspec neither matches an existing ref on the remote nor begins with refs/,
and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@repository_name'
이 에러는 보통 해당 브랜치가 이미 원격에서 삭제된 경우 발생한다.
✅ 해결 방법 – 원격 브랜치 목록 동기화
이럴 땐 로컬에서 원격 브런치 정보를 최신 상태로 동기화해야 한다.
git fetch -p
- -p는 prune(가지치기) 옵션으로, 원격에서 삭제된 브랜치 정보를 로컬에서도 제거한다.
📍 정리해보면 깃 브랜치를 로컬과 원격에서 각각 삭제하는 방법은 아래와 같다.
# 로컬 브랜치 삭제
git branch -d <로컬 브랜치 이름>
# 원격 브랜치 삭제
git push origin --delete <원격 브랜치 이름>