Git branch 삭제 로컬 및 원격 저장소 브랜치 정리 명령어 모음

Git branch 삭제 로컬 및 원격 저장소 브랜치 정리 명령어 모음

Git을 쓰면서 브랜치를 깔끔하게 관리하는 게 꽤 까다로울 때가 있죠? 특히 로컬에서 작업하고 원격에도 올려놓은 브랜치들을 정리할 때는 각기 다른 명령어를 쓰느라 헷갈릴 수 있습니다. 제가 직접 겪으면서 익힌 로컬과 원격 저장소 브랜치 삭제 방법을 모두 정리해보았습니다. 어떤 경우에 어떤 명령어를 쓰면 좋을지 궁금하지 않으세요?

현재 내 브랜치 상태, 어떻게 확인하나요?

브랜치를 지우기 전에 우선 내가 가진 브랜치 목록부터 파악하는 게 중요합니다. 그래야 삭제하려는 브랜치가 어디에 있는지 명확해지거든요.

명령어 설명
git branch -a 로컬과 원격 저장소에 있는 모든 브랜치 조회
git branch 로컬 브랜치만 조회
git branch -r 원격 저장소 브랜치만 조회

강조하고 싶은 점은, 현재 작업 중인 브랜치는 삭제할 수 없기 때문에 반드시 다른 브랜치로 이동 후 삭제해야 한다는 점입니다. ‘git branch -a’ 를 쓰면 별표(*) 표시가 붙어 있어서 지금 내가 있는 브랜치를 쉽게 확인할 수 있습니다.

로컬 브랜치 삭제, 안전하게 하는 방법은?

로컬 브랜치를 지울 때는, 병합 여부에 따라 두 가지 명령어를 사용할 수 있습니다.

1. 안전하게 삭제하기

이미 메인 브랜치나 다른 브랜치에 병합된 상태라면, 아래 명령어로 삭제하는 게 좋습니다.

git branch -d 브랜치명

이 방법은 병합되지 않은 작업물이 있을 경우 삭제가 막히기 때문에, 실수로 작업물을 잃는 일을 방지해줍니다.

2. 강제 삭제는 언제 쓰나요?

때로는 진행 중인 브랜치라도 바로 삭제해야 할 때가 있습니다. 이럴 땐 아래 명령어를 신중하게 사용하세요.

git branch -D 브랜치명

주의할 점은, 작업 내용이 완전히 사라질 수 있으므로 정말 고민 후에 사용해야 한다는 것입니다.

원격 저장소 브랜치 삭제는 왜 따로 해야 하나요?

로컬 브랜치만 삭제하면 원격 저장소에는 여전히 브랜치가 남아있습니다. 깔끔한 협업 환경을 위해서는 원격 저장소의 브랜치도 해당 방법으로 삭제해야 합니다.

원격 브랜치 삭제 기본 명령어

git push origin –delete 브랜치명

원격 저장소에서 ‘feature/update’ 같은 이름의 브랜치를 삭제할 때 쓸 수 있죠.

좀 더 간단한 방법은 없을까요?

사실 조금 더 축약된 명령어로도 같은 일을 할 수 있습니다.

git push origin :브랜치명

콜론 뒤에 브랜치명이 오는데, 이는 내용이 비워진다는 의미로 원격 브랜치를 삭제할 때 쓰입니다.

여러 브랜치를 한 번에 정리하는 법, 알고 계신가요?

프로젝트를 오래 진행하면 미처 삭제하지 못한 브랜치들이 쌓이게 됩니다. 이럴 때는 한 번에 정리하는 도구들이 매우 편리합니다.

상황 명령어 설명
병합된 로컬 브랜치 일괄 삭제 git branch –merged main | grep -v ‘*’ | xargs -n 1 git branch -d main 브랜치에 병합된 모든 로컬 브랜치를 한번에 삭제
원격 저장소에서 삭제된 브랜치 로컬에서 정리 git fetch –prune && git branch -vv | grep ‘: gone]’ | awk ‘{print $1}’ | xargs -I {} git branch -d {} 원격에서 삭제된 브랜치를 로컬에서도 지워서 깔끔한 상태 유지

이 명령어들은 조금 복잡해 보이지만, 한번 이해하면 로컬과 원격 브랜치 상태를 아주 깔끔히 관리할 수 있습니다.

정리하며: 브랜치 관리, 어떻게 하면 좋을까요?

Git branch 삭제 명령어들은 상황에 맞게 쓰는 것이 관건입니다. 로컬 작업은 git branch로 관리하고, 원격 저장소 브랜치는 git push 명령어를 활용해 삭제해야 한다는 점을 꼭 기억하세요. 또한, 안전한 삭제를 우선으로 하되 상황에 따라 강제 삭제도 가능하다는 점도 알아두시면 좋습니다.

저는 직접 이런 명령어들을 활용하면서 브랜치 관리 실력이 많이 늘었는데요, 여러분도 오늘 알려드린 명령어들을 참고해서 깔끔하게 브랜치를 정리하시면 좋겠습니다.

자주 묻는 질문

로컬 브랜치 삭제하다 “다른 브랜치로 이동하세요” 라고 뜨는데 왜 그런가요?

현재 작업 브랜치는 삭제 못 합니다.

원격 브랜치를 삭제했는데 로컬에 안 사라져요. 어떻게 해야 하나요?

git fetch –prune로 정리하세요.

병합 안 된 브랜치도 바로 삭제해도 괜찮나요?

고려해보고 강제 삭제하세요.