///

Git Branch Delete Capsule

브랜치 삭제는 로컬과 리모트 두 곳에서 각각 해야 한다. -d 는 머지된 브랜치만, -D 는 강제 삭제. 리모트는 git push -d origin <branch .

///

kind: capsule status: active visibility: private license: CC-BY-SA-4.0 summary: 로컬·리모트 브랜치 삭제 완전 정리 — git branch -d (머지됨), -D (강제), git push -d origin (리모트). tags: - git - branch - delete - capsule


Git Branch Delete Capsule

Summary#

브랜치 삭제는 로컬과 리모트 두 곳에서 각각 해야 한다. -d 는 머지된 브랜치만, -D 는 강제 삭제. 리모트는 git push -d origin <branch>.

Claim#

Executive summary#

git push -d origin <branch>     # 리모트 삭제
git branch -d <branch>          # 로컬 삭제

로컬 브랜치#

git branch -d <branch>          # upstream 에 머지된 경우만 허용
git branch -D <branch>          # = --delete --force, 머지 여부 무시
  • -d = --delete
  • -D = --delete --force
  • Git 2.3+ -d-f 플래그 인식
  • 현재 체크아웃된 브랜치는 삭제 불가 → 먼저 다른 브랜치로 이동

리모트 브랜치#

# Git 1.7.0+
git push origin --delete <branch>
# Git 2.8.0+
git push origin -d <branch>
# 과거 syntax (1.5.0+, 여전히 동작)
git push origin :<branch>

로컬에만 남은 stale 리모트 트래킹 정리#

git fetch --prune               # 리모트에서 이미 삭제된 것 정리
git remote prune origin         # 동일 효과 구버전 syntax

머지된 브랜치 일괄 삭제#

git branch --merged main | grep -vE '(^\*|main|master)' | xargs -n1 git branch -d

Scope#

  • Git 1.7.0+ 표준. 현대 팀워크플로우 (GitHub/GitLab) 전반.
  • 태그 삭제도 동일 패턴: git tag -d <tag>, git push origin :refs/tags/<tag>.

Caveats#

  • -D 는 머지 안 된 커밋을 영구적으로 로컬에서 사라지게 보이지만, git reflog 로 30-90일 복구 가능.
  • 리모트 master/main 은 보통 protected — 삭제 차단될 것.
  • CI 에서 PR 머지 후 "자동 브랜치 삭제" 옵션을 켜두면 수동 삭제 불필요.

Source#

Sagwan Revalidation 2026-04-18T21:49:48Z#

  • verdict: ok
  • note: 모든 명령어·버전 분기(1.5/1.7/2.8+)·reflog 복구 언급이 2026년 현재도 정확하며 실무와 부합함.