로컬에서 작업하다가 remote에 있는 브랜치는 제거되었는데 내 로컬에서는 그게 반영되지 않는다. 그래서 pull을 했더니 코드는 받아들여지지만 브랜치 정보가 받아들여지지는 않고 그대로 남아있다.
인터넷으로 찾아보니
간혹 깃헙 페이지에서 GUI로 삭제 처리를 한경우 해당 로컬 저장소 커멘드라인에서
원격브랜치 목록 조회를 했을 때, 삭제했음에도 불구하고 여전히 브랜치가 보이는 경우가 있다고 한다.
이런 경우 아래 명령어로 로컬과 원격 브랜치를 동기화 할 수 있다.
git fetch --all --prune
git fetch --all
fetch 는 원격 브랜치의 로컬 복사본을 업데이트하므로 로컬 브랜치에는 항상 안전 하지만 다음과 같습니다.
- fetch 는 로컬 브랜치를 업데이트 하지 않습니다(원격 브랜치 를 추적함). 로컬 브랜치를 업데이트하려면 여전히 모든 브랜치를 가져와야 합니다.
- 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 |