본문 바로가기

IT/Git

[Git] 모든 Git 브랜치를 가져오기

로컬에서 작업하다가 remote에 있는 브랜치는 제거되었는데 내 로컬에서는 그게 반영되지 않는다. 그래서 pull을 했더니 코드는 받아들여지지만 브랜치 정보가 받아들여지지는 않고 그대로 남아있다. 

 

인터넷으로 찾아보니

간혹 깃헙 페이지에서 GUI로 삭제 처리를 한경우 해당 로컬 저장소 커멘드라인에서

원격브랜치 목록 조회를 했을 때, 삭제했음에도 불구하고 여전히 브랜치가 보이는 경우가 있다고 한다.

 

이런 경우 아래 명령어로 로컬과 원격 브랜치를 동기화 할 수 있다.

git fetch --all --prune
 

모든 Git 브랜치를 가져오는 방법

질문자 :David542 약 5개의 분기가 포함된 Git 리포지토리를 복제했습니다. git branch 수행하면 그 중 하나만 볼 수 있습니다. $ git branch * master git branch -a 를 수행하여 모든 분기를 볼 수 있다는 것을

guseowhtjs.tistory.com

 

 

원격브랜치와 로컬 동기화하기 - 부제 : 원격브랜치와 로컬에서 브랜치 조회 시 목록 다를 때

로컬에서 원격 브랜치 리스트를 조회했더니, 실제로 깃헙에서 보이는 리스트와 달랐다. 딱 봐도 로컬에서 조회한 원격브랜치 리스트가 훨씬 더 많아보인다. 인터넷으로 찾아보니 간혹 깃헙 페

eddori.tistory.com

 

git fetch --all

fetch 는 원격 브랜치의 로컬 복사본을 업데이트하므로 로컬 브랜치에는 항상 안전 하지만 다음과 같습니다.

  1. fetch 는 로컬 브랜치를 업데이트 하지 않습니다(원격 브랜치 를 추적함). 로컬 브랜치를 업데이트하려면 여전히 모든 브랜치를 가져와야 합니다.
  2. fetch 는 로컬 분기( 원격 분기를 추적 하는)를 생성 하지 않으므로 수동으로 수행해야 합니다. 모든 원격 분기를 나열하려면 git branch -a

원격 분기를 추적하는 로컬 분기를 업데이트하려면:

 

git pull --all

 

그러나 이것은 아직 충분하지 않을 수 있습니다. 원격 지점을 추적하는 로컬 지점에서만 작동합니다. 모든 원격 분기를 추적하려면 git pull --all 전에 이 oneliner를 실행하십시오.

 

git branch -r | 
grep -v '\->' | 
while read remote; 
do git branch --track "${remote#origin/}" "$remote"; 
done

 

git branch -r | 
grep -v '\->' | 
while read remote; 
do git branch --track "${remote#origin/}" "$remote"; 
done 
git fetch --all 
git pull --all

'IT > Git' 카테고리의 다른 글

[Git] push하지 않은 커밋 확인  (0) 2023.02.28
[Git] 로컬 브랜치 모두 삭제하기  (0) 2023.02.28
[Git] tracked untracked unmodified modified staged  (0) 2023.02.10
[Git] git 명령 취소 방법  (0) 2023.01.20
[Git] Git clone --depth=1  (0) 2021.10.20