어제 오늘 내일

[Git] 다 쓴 브랜치 정리하기! 로컬 & 원격 브랜치 삭제 방법 본문

IT/Git

[Git] 다 쓴 브랜치 정리하기! 로컬 & 원격 브랜치 삭제 방법

hi.anna 2026. 3. 7. 07:05

프로젝트를 진행하다 보면 기능 추가(feature), 버그 수정(hotfix) 등으로 인해 수많은 브랜치(Branch)가 생겨나게 됩니다. 할 일을 다 마친 브랜치를 방치하면 나중에 "feature-login이 최신인가? 아니면 feature-login-new가 최신인가?" 하며 헷갈리는 순간이 오죠.

이번 포스팅에서는 다 쓴 브랜치를 깔끔하게 삭제하는 방법을 로컬(Local)과 원격(Remote)으로 나누어 완벽하게 정리해 드리겠습니다.

 


 

브랜치 삭제는 크게 내 컴퓨터에 있는 '로컬 브랜치'와 GitHub 같은 서버에 있는 '원격 브랜치' 삭제로 나뉩니다. 명령어 한 줄이면 프로젝트가 훨씬 쾌적해집니다!

 


 

1. 로컬(Local) 브랜치 삭제하기

내 컴퓨터에 저장된 브랜치를 지우는 방법입니다. Git은 안전을 위해 두 가지 옵션을 제공합니다.

① 일반 삭제 (-d 옵션)

가장 권장하는 방법입니다. 해당 브랜치의 내용이 메인 브랜치에 이미 병합(Merge)된 경우에만 삭제를 허용합니다.

$ git branch -d <브랜치명>
  • 특징: 만약 병합되지 않은 코드가 남아있다면, Git이 "아직 병합 안 됐는데 지울 거야?"라며 에러 메시지를 띄우고 삭제를 막습니다. (안전장치)

② 강제 삭제 (-D 옵션)

병합 여부와 상관없이 무조건 삭제합니다.

$ git branch -D <브랜치명>
  • 주의: 대문자 -D를 사용합니다. 아직 메인 코드에 반영되지 않은 작업 내용이 영원히 사라질 수 있으므로, "이 브랜치는 필요 없어!"라고 확신할 때만 사용하세요.

💡 팁: 현재 내가 사용 중인(Checkout 된) 브랜치는 삭제할 수 없습니다. 다른 브랜치(예: main 등)로 이동한 뒤 삭제 명령을 내려주세요!

 

 


 

2. 원격(Remote) 브랜치 삭제하기

로컬에서 브랜치를 지웠다고 해서 GitHub에 올라간 브랜치까지 자동으로 지워지진 않습니다. 원격 저장소의 브랜치를 지우려면 push 명령어를 응용해야 합니다.

$ git push origin --delete <브랜치명>
  • 해석: "원격 저장소(origin)에 있는 <브랜치명>을 삭제(--delete)해 줘!" 라는 뜻입니다.

 


 

3. 보너스 팁: 찌꺼기 정리하기 (prune)

GitHub 페이지에서 직접 브랜치를 삭제했는데, 내 컴퓨터에서 git branch -r (원격 브랜치 목록 보기)을 치면 여전히 그 브랜치가 남아있는 경우가 있습니다.

이때는 '가지치기(Prune)' 명령어로 원격 저장소와 내 컴퓨터의 정보를 동기화해 줍니다.

$ git fetch --prune
  • 효과: 원격 저장소에서 이미 사라진 브랜치 정보를 내 로컬 목록에서도 깔끔하게 지워줍니다.

 


 

💡 한눈에 보는 요약

상황 명령어 비고
안전하게 로컬 삭제 git branch -d [이름] 병합 안 됐으면 경고함
강제로 로컬 삭제 git branch -D [이름] 묻지도 따지지도 않고 삭제
원격(GitHub) 삭제 git push origin --delete [이름] 서버에서 삭제됨
목록 동기화 git fetch --prune 죽은 브랜치 목록 정리

 


 

마치며

방 청소를 하듯, 개발 프로젝트도 주기적으로 브랜치를 정리해 주어야 유지보수가 쉬워집니다. 오늘 배운 명령어들로 묵은 브랜치들을 시원하게 날려버리시는 건 어떨까요?

 

 

반응형
Comments