이 글은 작업이 끝난 Git 브랜치를 로컬 저장소와 원격 저장소에서 삭제하는 방법을 다룬다. 브랜치는 서로 독립된 작업 흐름을 가리키는 이름이며, 삭제 명령은 그 이름이 가리키는 브랜치 참조를 정리한다. 로컬 브랜치와 원격 브랜치는 저장 위치가 다르므로 각각 별도의 명령을 실행해야 한다.

브랜치를 삭제하기 전에 확인할 사항
삭제할 브랜치가 더 이상 필요한 작업을 담고 있지 않은지 먼저 확인한다. 아직 다른 브랜치에 합치지 않은 커밋이 있다면, 브랜치 이름을 지운 뒤 해당 작업을 다시 찾는 과정이 복잡해질 수 있다. 필요한 변경 사항은 대상 브랜치에 병합하거나 별도로 보관한 다음 삭제한다.
현재 체크아웃한 브랜치는 바로 삭제할 수 없다. 먼저 유지할 브랜치로 이동한 뒤 삭제 명령을 실행한다. 또한 명령의 localBranchName(로컬의 브랜치 이름)과 remoteBranchName(원격 브랜치 이름)은 설명용 자리이므로, 괄호까지 입력하지 않고 실제 브랜치 이름으로 바꾼다.
로컬 브랜치와 원격 브랜치 삭제
첫 번째 명령은 현재 컴퓨터의 로컬 저장소에서 브랜치를 삭제한다. git branch는 로컬 브랜치를 관리하며, -d 옵션은 Git이 병합 상태를 확인한 뒤 안전하게 삭제하도록 지정한다. 병합되지 않은 변경 이력이 남아 있으면 삭제를 거부할 수 있으므로, 오류 메시지가 나타날 때는 브랜치 이름과 병합 여부를 다시 확인한다.
두 번째 명령은 원격 저장소에 삭제 요청을 보낸다. git push는 로컬의 요청을 원격 저장소에 반영하고, origin은 명령이 향하는 원격 저장소의 이름이며, --delete는 지정한 원격 브랜치를 삭제하라는 옵션이다. 저장소에서 다른 원격 이름을 사용한다면 origin을 그 이름으로 바꿔야 한다.
// 로컬에서 브랜치 삭제하기 명령어
git branch -d localBranchName(로컬의 브랜치 이름)
// 원격에서 브랜치 삭제하기 명령어
git push origin --delete remoteBranchName(원격 브랜치 이름)
두 명령은 서로 대신할 수 없다. 로컬 브랜치만 삭제하면 원격 브랜치는 그대로 남고, 원격 브랜치만 삭제하면 현재 컴퓨터의 로컬 브랜치는 그대로 남는다. 두 위치를 모두 정리하려면 첫 번째 명령과 두 번째 명령을 각각 실행한다.
명령을 실행할 때는 대소문자, 하이픈, 슬래시를 포함한 브랜치 이름을 정확히 입력해야 한다. 이름이 일치하지 않으면 Git은 삭제할 브랜치를 찾지 못한다. 원격 브랜치 삭제에는 해당 원격 저장소에 변경 사항을 보낼 권한과 원격 저장소에 연결할 수 있는 환경도 필요하다.
삭제 결과 확인
명령 실행 뒤에는 로컬 브랜치 목록과 원격 저장소의 브랜치 목록을 각각 확인한다. 삭제한 이름이 로컬 목록에서 사라졌다면 첫 번째 명령이 반영된 것이고, 원격 저장소의 브랜치 목록에서 사라졌다면 두 번째 명령이 반영된 것이다. 팀에서 함께 사용하는 원격 브랜치는 다른 작업자가 기준으로 삼고 있을 수 있으므로, 삭제 전에 사용 여부를 확인하는 편이 안전하다.