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 <원격 브랜치 이름>