반응형

일반적으로, pull 또는 fetch 명령어를 통해 가져온 Remote branch 정보는 Remote에서 삭제 되더라도 계속해서 리스트에서 제거되지 않는다.

따라서 이를 제거하기 위해 일반적으로는 git fetch --prune 명령어를 통해 삭제된 branch를 리스트에서 제거하는 작업을 수행한다.

하지만 이와 같은 동작은 Remote branch의 정보만 업데이트하며, checkout된 local branch 목록에서는 지워지지 않는다.


이를 해결하기 위해선 아래와 같은 명령어를 실행하면 손쉽게 해결할 수 있다.

git branch -r |
awk '{print $1}' |
egrep -v -f /dev/fd/0 <(git branch -vv | grep origin) |
awk '{print $1}' |
xargs git branch -d

위의 명령어 입력 시 삭제된 branch의 명단이 나타나며 자동으로 checkout 된 branch가 삭제된다.

반응형

댓글을 달아 주세요