반응형

회사에서 PR 검토를 도입하면서(예전엔 그냥 로컬에서 작업해서 바로 브랜치에 머지했었음) 수많은 브랜치를 만들었다 지우기를 반복하게 되었다. 나는 이런 거 잘 안 남겨 놓는 스타일이라 원격은 pr 머지되면 자동으로 지워지게 설정해 놓고 로컬도 바로바로 지우지만 그럼에도 가끔 까먹고 안 지우는 경우도 있었다.

그러다가 우연히 원격에 없는 로컬 브랜치를 자동으로 정리해 주는 커스텀 명령어를 발견해서 소개해 본다.

git config --global alias.gone "! git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '\$2 == \"[gone]\" {print \$1}' | xargs -r git branch -D"

위 명령어로 git 커스텀 명령어를 등록할 수 있다. 리눅스와 윈도우 모두 사용할 수 있으며 만약 파워셸을 사용 중이라면 이스케이프 문자 차이 때문에 아래 명령어로 등록해야 한다.

git config --global alias.gone "! git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | awk '`$2 == `\`"[gone]`\`" {print `$1}' | xargs -r git branch -D"

이렇게 한번 등록하고 나면 아래 명령어로 커스텀 명령어를 사용할 수 있다.

git gone

명령어를 실행하면 원격에서 삭제된 로컬 브랜치를 모두 삭제하고 목록을 띄운다.

출처: https://www.erikschierboom.com/2020/02/17/cleaning-up-local-git-branches-deleted-on-a-remote/

반응형

+ Recent posts