개발관련/Git

병합 된 모든 Git 브랜치를 삭제하는 방법

Rateye 2021. 11. 26. 10:27
728x90
반응형
질문 : 병합 된 모든 Git 브랜치를 어떻게 삭제할 수 있습니까?

나는 많은 Git 브랜치를 가지고 있습니다. 이미 병합 된 분기를 삭제하려면 어떻게합니까? 하나씩 삭제하는 대신 모두 삭제하는 쉬운 방법이 있습니까?

답변

최신 정보:

워크 플로에 가능한 조상이있는 경우 마스터 및 개발과 같은 다른 분기를 제외하도록 추가 할 수 있습니다. 일반적으로 나는 "sprint-start"태그에서 분기하고 master, dev 및 qa는 조상이 아닙니다.

먼저 원격에서 병합 된 로컬 추적 분기를 나열하십시오 (다른 답변에서 제안한대로 -r 플래그를 사용하여 모든 원격 추적 분기를 나열하는 것을 고려할 수 있습니다).

git branch --merged

제거하고 싶지 않은 분기가 거의 표시되지 않을 수 있습니다. 우리는 마스터 또는 개발과 같이 삭제하고 싶지 않은 중요한 분기를 건너 뛰기 위해 몇 가지 인수를 추가 할 수 있습니다. 다음 명령은 마스터 브랜치와 그 안에 dev가있는 모든 것을 건너 뜁니다.

git branch --merged| egrep -v "(^\*|master|main|dev)"

건너 뛰려면 다음과 같이 egrep 명령에 추가 할 수 있습니다. skip_branch_name 분기는 삭제되지 않습니다.

git branch --merged| egrep -v "(^\*|master|main|dev|skip_branch_name)"

현재 체크 아웃 된 분기에 이미 병합 된 모든 로컬 분기를 삭제하려면 다음을 수행하십시오.

git branch --merged | egrep -v "(^\*|master|main|dev)" | xargs git branch -d

master와 dev가 조상 인 경우 제외 된 것을 볼 수 있습니다.

다음을 사용하여 병합 된 로컬 브랜치를 삭제할 수 있습니다.

git branch -d branchname

병합되지 않은 경우 다음을 사용하십시오.

git branch -D branchname

원격 사용에서 삭제하려면 :

git push --delete origin branchname

git push origin :branchname    # for really old git

원격에서 분기를 삭제하면 다음을 사용하여 원격 추적 분기를 제거하기 위해 정리할 수 있습니다.

git remote prune origin

또는 다른 답변에서 알 수 있듯이 개별 원격 추적 분기를 정리하십시오.

git branch -dr branchname
출처 : https://stackoverflow.com/questions/6127328/how-can-i-delete-all-git-branches-which-have-been-merged
728x90
반응형