사용 git branch --all
은 모든 원격 및 로컬 지점을 표시합니다. Git은 언제이 목록을 새로 고치나요?
풀 / 푸시? 그리고 Git Bash를 사용하여 새로 고치는 방법은 무엇입니까?
답변
원격 분기의 로컬 목록을 업데이트하려면 다음을 수행하십시오.
git remote update origin --prune
Git이 알고있는 모든 로컬 및 원격 지점을 표시하려면
git branch -a
답변
git branch --all
Bash에서 실행하면 원격 및 로컬 분기 목록이 명령을 실행할 때 로컬 Git이 알고있는 것을 반영 한다고 생각합니다 . Git은 시스템의 로컬 브랜치와 관련하여 항상 최신 상태이므로 로컬 브랜치 목록은 항상 정확합니다.
그러나 원격 지점의 경우에는 그렇지 않습니다. 로컬 Git은 마지막 페치 (또는 풀)에서 본 원격 브랜치에 대해서만 알고 있습니다. 그래서 당신이 실행할 수있는 가능성이있다 git branch --all
하고 없는 나타난 새 원격 지점을 참조 후 당신이 가져온 또는 뽑아 마지막 시간을.
로컬 및 원격 분기 목록을 최신 상태로 유지하려면 실행 git fetch
하기 전에 수행 할 수 있습니다 git branch --all
.
추가 정보를 위해, 실행할 때 나타나는 “원격”브랜치 git branch --all
는 전혀 원격이 아닙니다. 그들은 실제로 지역입니다. 예를 들어, 원격 feature
Git에 한 번 이상 가져온 분기가 있다고 가정 하십시오. origin/feature
실행할 때 분기로 표시 됩니다 git branch --all
. 그러나이 지점은 실제로 로컬 Git 지점입니다. 을 (를) 수행 git fetch origin
하면이 추적 분기가 원격의 새로운 변경 사항으로 업데이트됩니다. 새로운 원격 지점이 있거나 추적 지점이 오래 될 수 있기 때문에 로컬 상태가 오래 될 수 있습니다.
답변
OP는 모든 원격 장치에 대한 정리를 요청하지 않았으며 기본 원격의 모든 분기에 대해 정리를 요청했습니다.
그래서 git fetch --prune
사용해야합니다.
설정 git config remote.origin.prune true
은 --prune
자동으로 이루어집니다. 이 경우 git fetch
로컬 복사본에서 오래된 원격 분기도 제거합니다. Git 페치 또는 풀을 사용한 자동 프룬 도 참조하십시오 .
더 이상 원격 지점을 추적하지 않는 로컬 지점은 정리하지 않습니다. 더 이상 원격에 존재하지 않는 로컬 추적 분기를 제거하는 방법을 참조하십시오 .
답변
git fetch
최근에 생성 된 모든 분기를 가져 오는 데 사용 합니다.