Git은 언제 원격 브랜치 목록을 갱신합니까?


496

사용 git branch --all은 모든 원격로컬 지점을 표시합니다. Git은 언제이 목록을 새로 고치나요?

풀 / 푸시? 그리고 Git Bash를 사용하여 새로 고치는 방법은 무엇입니까?


5
참고로 git ls-remote여기에 흥미로울 수 있습니다.
jthill

답변:


1221

원격 분기의 로컬 목록을 업데이트하려면 다음을 수행하십시오.

git remote update origin --prune

Git이 알고있는 모든 로컬 및 원격 지점을 표시하려면

git branch -a

143
git remote update origin --prune내가 찾고 있었던 것은 thx
WonderLand

6
를 사용하는이 답변 git remote updategit fetch
The Red Pea

6
이것이 정답입니다. git fetch원격 지점의 로컬 캐시를 제거하지 않았습니다. 만 --prune모두 정리 할 수 있었다.
Felipe Alvarez

23
당신은 자동으로 이것을 할 수 있습니다git config remote.origin.prune true
kjhf

8
git remote prune origin같은 효과가 있고 덜 입력합니다.
Dvin

27

git branch --allBash에서 실행하면 원격 및 로컬 분기 목록이 명령을 실행할 때 로컬 Git이 알고있는 것을 반영 한다고 생각합니다 . Git은 시스템의 로컬 브랜치와 관련하여 항상 최신 상태이므로 로컬 브랜치 목록은 항상 정확합니다.

그러나 원격 지점의 경우에는 그렇지 않습니다. 로컬 Git은 마지막 페치 (또는 풀)에서 본 원격 브랜치에 대해서만 알고 있습니다. 그래서 당신이 실행할 수있는 가능성이있다 git branch --all하고 없는 나타난 새 원격 지점을 참조 당신이 가져온 또는 뽑아 마지막 시간을.

로컬 원격 분기 목록을 최신 상태로 유지하려면 실행 git fetch 하기 전에 수행 할 수 있습니다 git branch --all.

추가 정보를 위해, 실행할 때 나타나는 "원격"브랜치 git branch --all는 전혀 원격이 아닙니다. 그들은 실제로 지역입니다. 예를 들어, 원격 featureGit에 한 번 이상 가져온 분기가 있다고 가정 하십시오. origin/feature실행할 때 분기로 표시 됩니다 git branch --all. 그러나이 지점은 실제로 로컬 Git 지점입니다. 을 (를) 수행 git fetch origin하면이 추적 분기가 원격의 새로운 변경 사항으로 업데이트됩니다. 새로운 원격 지점이 있거나 추적 지점이 오래 될 수 있기 때문에 로컬 상태가 오래 될 수 있습니다.


4
그렇습니다 git fetch.
BendEg

14
Downvoter에 대한 참고 사항 : 의도가 좋은 설명으로 정확한 정보가 있다고 생각되는 경우 Downvote를 사용해야합니다. 최소한 발언하고 의견을 남기십시오.
Tim Biegeleisen

3
git fetch나를 위해 작동하지 않습니다, 추가해야합니다 --prune. Btw, 난 downvoter 아니에요;)
Deqing

3
git fetch삭제 된 원격 브랜치를 제거하지 않습니다. 아마 일부 사람들이
다운 투표 한

@ JérômeMEVEL 허용 된 답변에 1000 개의 공감대가 있다는 것은 놀라운 일입니다 . 미친 짓이야 그건 ... 내가 :-) 노출 그런 종류의 있었으면 좋겠다
팀 Biegeleisen을

24

OP는 모든 원격 장치에 대한 정리를 요청하지 않았으며 기본 원격의 모든 분기에 대해 정리를 요청했습니다.

그래서 git fetch --prune사용해야합니다.

설정 git config remote.origin.prune true--prune자동으로 이루어집니다. 이 경우 git fetch로컬 복사본에서 오래된 원격 분기도 제거합니다. Git 페치 또는 풀을 사용한 자동 프룬 도 참조하십시오 .

더 이상 원격 지점을 추적하지 않는 로컬 지점은 정리하지 않습니다. 더 이상 원격에 존재하지 않는 로컬 추적 분기를 제거하는 방법을 참조하십시오 .


좀 더 짧게 만들기 위해git fetch -p
Michael Warner

2

git fetch최근에 생성 된 모든 분기를 가져 오는 데 사용 합니다.


1
git fetch자식 2.17.1로 나를 위해 아무것도 변경하지 않았습니다. 어떤 버전과 옵션을 사용하고 있습니까?
PointedEars

2
OP 질문을 해결하려면 --prune또는 git config remote.NAME.prune true이 중 하나가 필요합니다
Oliver

-1

Eclipse를 사용 중이고 업스트림에서 새 분기를보고자하는 경우

Git Perspective에서 Git 저장소를 마우스 오른쪽 단추로 클릭 한 후 "업스트림에서 가져 오기"를 선택하십시오. 이것은 새로운 원격 브랜치를 가져옵니다.


-8

Eclipse를 사용하는 경우

  1. "Git 리포지토리"열기
  2. 리포지토리를 찾으십시오.
  3. "분기"를 연 다음 "원격 추적"을 엽니 다.

힘내

그들은 모두 거기에 있어야합니다. 마우스 오른쪽 버튼을 클릭하고 "체크 아웃"


이 질문에 어떻게 대답합니까? - "Git은 언제 원격 브랜치 목록을 갱신합니까?"
Peter Mortensen

일식에서 현지 지점을 새로 고치고 싶을 때 Google 검색을 통해 여기로 연결되었습니다. 이 게시물은 일부 공감대가 있었기 때문에 실제로 몇몇 사람들에게 도움이되었습니다. 어쩌면 나는 그 질문을 오해했을 것입니다. 나에게 Eclipse IS Git (그 인터페이스). 모두를 화나게 해 죄송합니다!
markthegrea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.