브랜치를 코드베이스에 병합(merge)한 후에는 해당 브랜치를 삭제하는 것이 일반적인 관행입니다. 로컬 머신에서는 git branch -d 명령어로 Git 브랜치를 삭제할 수 있고, 원격 저장소의 브랜치는 git push origin --delete 명령어로 제거할 수 있습니다.
브랜칭(branching)을 활용하면 프로젝트의 독립적인 버전을 만들어, 메인 버전에 영향을 주지 않으면서 자유롭게 수정 작업을 진행할 수 있습니다. 브랜치 작업이 끝나면 해당 브랜치를 삭제하는 것이 좋습니다. 이렇게 하면 코드베이스를 깔끔하게 유지할 수 있습니다.
Git에서 브랜치를 삭제하는 방법은 두 가지가 있으며, 어떤 방법을 사용할지는 삭제하려는 브랜치가 로컬 머신에 있는지 원격 저장소에 있는지에 따라 달라집니다.
이 글에서는 예제와 함께 Git에서 로컬 브랜치와 원격 브랜치를 삭제하는 방법을 자세히 알아보겠습니다.
Git 브랜칭이란?
브랜칭은 Git과 같은 버전 관리 시스템의 핵심 기능입니다. Git에서 브랜치를 사용하면 기존 프로젝트의 새로운 버전을 만들 수 있으며, 원본 프로젝트에 영향을 주지 않은 채 새 브랜치에서 변경 작업을 진행할 수 있습니다.
예를 들어, 프로젝트에 새로운 기능을 추가하는 작업을 위해 하나의 브랜치를 만들고, 진행 중인 버그 수정 코드를 담기 위해 또 다른 브랜치를 만들 수 있습니다.
이처럼 브랜칭을 사용하면 준비가 될 때까지 메인 코드베이스를 변경하지 않고도 안전하게 작업할 수 있다는 장점이 있습니다. Git 브랜치에 대해 더 자세히 알고 싶다면 git branch 명령어 초보자 가이드를 참고해 보세요.
Git에서 브랜치 삭제하기
여러 가지 이유로 브랜치를 삭제하게 될 수 있습니다. 브랜치에서의 작업을 마치고 변경 사항을 프로젝트의 메인 버전에 병합했다면, 더 이상 해당 브랜치가 필요하지 않기 때문입니다.
로컬 브랜치 삭제하기
git branch -d 명령어를 사용하면 로컬 머신에서 Git 브랜치를 삭제할 수 있습니다. 여기서 -d 플래그는 브랜치를 삭제하겠다는 의미입니다.
예를 들어, 최근에 프로젝트 메인 버전과 병합한 fix-issue49라는 로컬 브랜치가 있다고 가정해 보겠습니다. 이 브랜치에는 작업했던 버그 수정 내역이 담겨 있는데, 더 이상 필요하지 않으므로 삭제하려 합니다.
주의할 점은 현재 체크아웃되어 있는 브랜치는 삭제할 수 없다는 것입니다. 따라서 로컬 브랜치를 삭제하기 전에 먼저 삭제하려는 브랜치가 아닌 다른 브랜치로 이동해야 합니다.
fix-issue49 브랜치를 삭제하려면 먼저 다른 브랜치로 전환해야 합니다. 이때 git checkout 명령어를 사용합니다.
다음 명령어로 로컬 저장소의 master 브랜치로 이동할 수 있습니다:
git checkout master
이제 master 브랜치에 있으므로 로컬 fix-issue49 브랜치를 삭제할 수 있습니다. 다음 명령어를 실행합니다:
git branch -d fix-issue49
-d 플래그는 브랜치를 삭제하겠다는 의미이며, fix-issue49는 삭제하려는 브랜치의 이름입니다. 이 명령어를 실행하면 Git이 로컬 브랜치 fix-issue49를 삭제합니다.
만약 Git이 브랜치 삭제 과정에서 문제를 발견하면, 삭제 작업은 중단됩니다. 예를 들어 아직 병합되지 않은 커밋이 있는 브랜치는 안전장치에 의해 삭제되지 않습니다.
로컬 브랜치를 강제로 삭제하려면 -D 플래그(대문자)를 사용할 수 있습니다. -D 플래그는 해당 브랜치가 코드베이스의 다른 브랜치에 병합되었는지 여부와 관계없이 브랜치를 삭제합니다.
단, -D 플래그는 브랜치를 즉시 삭제하므로 신중하게 사용해야 합니다. 브랜치 삭제가 확실하지 않다면 안전한 -d 플래그를 사용하는 것이 좋습니다.
원격 브랜치 삭제하기
Git에서 원격 브랜치를 삭제하려면 git push origin --delete 명령어를 사용합니다. 이 명령어는 로컬 변경 사항을 원격 저장소에 푸시(push)하도록 지시하며, 그 과정에서 지정한 브랜치가 원격 저장소에서 삭제됩니다.
예를 들어, 원격 저장소에 저장된 fix-issue12라는 브랜치를 삭제한다고 가정해 보겠습니다. 원격 저장소의 이름은 origin으로 지정되어 있으며, 다음 명령어로 fix-issue12 브랜치를 삭제할 수 있습니다:
git push origin --delete fix-issue12
위 명령어를 실행하면 원격 fix-issue12 브랜치가 삭제됩니다.
명령어 실행 후에는 fetch 명령어를 실행하여 원격 저장소에 저장된 모든 브랜치의 최신 상태를 가져오는 것이 좋습니다. 이렇게 하면 로컬 머신에서 원격 저장소의 변경 사항을 확인할 수 있습니다.
원격 저장소의 브랜치 정보를 가져오려면 다음 명령어를 입력합니다:
git fetch -p
이 명령어를 실행하면 로컬 Git 저장소가 원격 저장소와 그 브랜치들의 복사본을 가져옵니다. 여기서 -p(prune) 플래그는 원격 저장소에 더 이상 존재하지 않는 로컬 브랜치를 정리하도록 Git에 지시합니다.
git fetch 명령어에 대해 더 자세히 알고 싶다면 관련 가이드 문서를 참고하세요.
마무리
개발자들은 보통 브랜치를 다른 브랜치와 병합한 후 삭제하는 경우가 많습니다.
git branch -d 명령어로 로컬 브랜치를 삭제할 수 있고, git push origin --delete 명령어로 원격 브랜치를 삭제할 수 있습니다.
이 글에서는 이 두 가지 명령어를 사용하여 Git에서 브랜치를 삭제하는 방법을 살펴보았습니다. 이제 여러분도 Git 전문가처럼 브랜치를 깔끔하게 관리하고 삭제할 수 있을 것입니다!