질문 : 병합 된 모든 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
'개발관련 > Git' 카테고리의 다른 글
푸시 된 후 git에서 커밋을 스쿼시하는 방법 (0) | 2021.11.26 |
---|---|
git 스테이징 영역에서 파일을 제거하는 방법 (0) | 2021.11.26 |
.gitignore에서 무시되는 특정 파일을 표시하는 Git 명령 (0) | 2021.11.26 |
git이 항상 특정 지점에서 가져 오도록 하는 방법 (0) | 2021.11.26 |
기존 소스 코드를 GitHub로 가져 오기 (0) | 2021.11.26 |