Git에서 로컬 분기 정리
Ashok Chapagai
2022년12월19일
프로젝트에 로컬 시스템에서 생성되었지만 원격 저장소에는 존재하지 않는 많은 분기가 있다고 가정해 보겠습니다. 원격 저장소와 동기화되지 않은 모든 로컬 분기를 쉽게 제거할 수 있지만 그 전에 로컬 시스템에서 사용 가능한 모든 분기를 확인하고 싶을 수 있습니다. git branch
를 실행할 수 있습니다.
이제 모든 원격 분기를 나열하려면 git branch -r
명령을 사용할 수 있습니다. 하나의 명령으로 두 결과를 모두 얻으려면 git branch -a
명령을 사용할 수 있습니다. 분기가 확인되면 기사의 나머지 부분을 계속 진행할 수 있습니다.
Git에서 로컬 분기 제거(정리)
다음 명령을 쉽게 실행하여 원격 저장소에 없는 추적 분기를 정리할 수 있습니다.
git remote prune origin
위의 명령은 원격 저장소에 없는 추적 분기를 제거하지만 로컬 분기는 아직 삭제되지 않습니다. 실제로 로컬 브랜치를 삭제하려면 아래에 설명된 추가 단계를 수행해야 할 수 있습니다.
-
자세한 출력으로 모든 분기를 나열합니다.
git branch -vv
이제
gone
상태가 원격 저장소에서는 사용할 수 없지만 로컬 시스템에서는 사용할 수 있는 분기에 놓이기 때문에origin/.* : gone]
에 대한 출력을 grep으로 파이프 아웃합니다.grep 'origin/.*: gone]'
-
다시 출력을 아래와 같이
awk
(포맷하기에 매우 좋은 도구)로 파이프합니다.awk '{print $1}'
-
마지막으로, 한 명령의 출력을 가져와 다른 명령의 인수로 사용해야 할 때 사용할 수 있는
xargs
로 출력을 파이프하려고 합니다. 아래와 같이 로컬 브랜치를 삭제하기 위해 2단계의 출력을git branch -d
명령으로 전달하면 안 됩니다.xargs git branch -d
따라서 원격 저장소에서 사용할 수 없는 모든 로컬 분기를 정리하고 삭제하는 마지막 두 라이너 명령은 다음과 같습니다.
git remote prune origin
위의 명령을 실행한 후 아래 명령을 실행하여 원격 저장소에서 사용할 수 없는 로컬 분기를 삭제할 수 있습니다.
git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}' | xargs git branch -d
작가: Ashok Chapagai