Git에서 병합된 분기 삭제
Git에서 많은 팀원과 함께 작업하려면 분기가 필요합니다. 분기는 과거에 Git에서 수행된 변경 사항의 스냅샷을 나타냅니다.
Git에서 새 분기를 만들 때 버그를 수정하거나 새로운 기능을 추가하기 위해 변경한 사항을 포함합니다.
Git을 통해 브랜치를 생성하거나 명령을 사용하여 삭제할지 여부를 쉽게 관리할 수 있습니다. 분기 삭제는 Git에서 예외가 아닙니다.
많은 개발자들은 병합된 브랜치를 삭제하여 Git 저장소가 깨끗해졌을 때 만족감을 느끼고 기존 브랜치로 새로운 개발을 쉽게 진행할 수 있습니다.
Git에서 다음 명령을 사용하여 이미 병합된 분기를 제거하는 방법을 살펴보겠습니다.
Git에서 기존 분기 보기
저장소의 기존 분기 삭제를 시작하기 전에 다음 명령을 실행하여 모든 분기 목록을 살펴보겠습니다.
git branch
모든 원격 분기 목록을 보려면 다음 명령을 실행합니다.
git branch -r
모든 분기(로컬 및 원격) 목록을 보려면 다음 명령을 실행합니다.
git branch -a
이 명령의 결과로 분기 목록이 표시됩니다. 우리가 볼 수 있는 모든 분기를 삭제해서는 안 됩니다. 우리의 목표는 이미 병합된 분기를 정리하는 것입니다.
모든 로컬 병합 분기 목록을 보려면 다음 명령을 실행합니다.
git branch --merged
병합되지 않은 모든 로컬 분기 목록을 보려면 다음 명령을 실행합니다.
git branch --no-merged
Git에서 한 번에 여러 로컬 병합 분기 삭제
분기를 한 번에 하나씩 삭제하는 것은 훨씬 더 많은 시간이 소요되며 올바른 작업이 아닙니다. 물론 우리는 개발자이고 일부 명령을 사용하여 로봇화할 수 있을 때 반복적인 작업을 선호하지 않습니다.
병합된 분기 목록에서 보았듯이 앞으로 삭제하고 싶지 않은 일부 분기가 있을 수 있습니다. 따라서 이 목적을 위해 병합된 모든 분기를 삭제하여 삭제하지 않으려는 분기를 제외하는 명령과 함께 몇 가지 인수를 추가합니다.
다음 명령에는 master
브랜치와 dev가 있는 모든 항목이 포함되지 않습니다.
git branch --merged| egrep -v "(^\*|master|main|dev)"
다른 분기를 건너뛰려면 다음과 같이 이름을 추가합니다.
git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"
이제 과거에 이미 병합된 리포지토리의 기존 로컬 브랜치를 리포지토리의 현재 체크아웃된 브랜치로 삭제하려고 한다고 가정합니다. 이 경우 다음 명령을 실행합니다.
git branch --merged | grep -i -v -E "master|dev"| xargs git branch -d
Git에서 로컬 및 원격 병합 분기 삭제
병합된 로컬 분기를 삭제하려면 아래에 언급된 대로 -d
옵션과 함께 git 분기
명령을 실행합니다.
git branch -d <branch-name>
로컬 브랜치가 병합되지 않은 경우 다음 명령을 실행합니다.
git branch -D <branch-name>
원격에서 삭제하려면 --delete
옵션과 함께 git push
명령을 실행합니다(여기서 원격 이름은 기본적으로 원본임).
git push --delete origin <branch-name>
또는 다음 명령을 사용할 수도 있습니다.
git push origin :<branch-name>
원격에서 분기를 삭제한 후 다음 명령을 사용하여 원격 추적 분기를 제거하기 위해 정리합니다.
git remote prune origin
개별적으로 다음 명령을 사용하여 원격 추적 분기를 정리할 수도 있습니다.
git branch -dr <branch-name>