본문 바로가기
학습/Git

git 원격 브랜치 한번에 로컬로 받아오기(+로컬 브랜치 삭제)

코동이 2024. 1. 11.

*개요

git 원격 브랜치를 모두 로컬로 받아오는 명령어를 확인합니다

 

 

모든 브랜치 한번에 pull


$ git branch -r | grep -v '\->' | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
$ git pull --all

 

첫번째 줄은 명령어 공부를 통해 추후 정리 예정. 

git pull에는 git fetchgit merge가 합쳐져 있으므로 아래 글의 빨간박스 git fetch --all 부분은 삭제합니다.

 

 

모든 로컬 브랜치 삭제하기


만약 이미 브랜치가 존재하면 무시되므로 모든 로컬 브랜치를 삭제하고 싶다면 다음 명력어 입력합니다.

grep으로 찾은 브랜치를 xargs 명령에 pipeline으로 넘겨줘서 삭제합니다.

 

git branch | grep -v \* | xargs git branch -D

#merge 된 브랜치 삭제
git branch --merged | grep -v \* | xargs git branch -D

 

 

 

특정 로컬 브랜치 삭제하기


git branch | grep -v "master\|stable\|main" | xargs git branch -d

#merge 된 브랜치 삭제
git branch --merged | grep -v "master\|stable\|main" | xargs git branch -d

 

 

- 출처

https://stackoverflow.com/questions/10610327/delete-all-local-git-branches

https://stackoverflow.com/questions/10312521/how-do-i-fetch-all-git-branches#comment27984640_10312587

반응형