삭제 된 원격 브랜치로 원점에서 가져 오시겠습니까?


440

내가 git fetch origin원산지에 삭제 된 지점이 있으면 저장소에서 해당 지점을 업데이트하지 않는 것 같습니다. 내가 할 git branch -r때 여전히 표시 origin/DELETED_BRANCH됩니다.

이 문제를 어떻게 해결할 수 있습니까?


답변:


811

다음을 수행해야합니다

git fetch -p

원격 지사의 로컬 데이터베이스가 업데이트됩니다.


1
대단히 감사합니다. 이전에 해당 지점을 수동으로 삭제했습니다.
Maksim Dmitriev

4
몇 가지 이유를 들어, 명령이 작동하지 않았다, 그러나 이것은 내에서 존재하지 않는 원격 지사를 위해 한 origin포크 : git fetch -p origin 그때 않았다 때 git branch -r 존재하지 않는 원격 지사가 더 이상 나타났다.
oldfartdeveloper

11
완성도 : stackoverflow.com/a/6127884/94687stackoverflow.com/a/17983126/94687git remote prune origingit pull --prune언급 된 것과 동일 하고 유사 해야합니다 .
imz-Ivan Zakharyaschev

6
내가 이것을 할 때 사람들은 그것을 말하고 [deleted] (none) -> origin/ < branch name >지사는 여전히 지역 리포지토리에 어떤 이유를 보여 줍니까?
Buddhi741

4
분기가 삭제되었다는 메시지 git branch가 표시 되지만 실행 중에도 삭제 된 분기가 계속 표시됩니다.
sdfsdf

91

에서 http://www.gitguys.com/topics/adding-and-removing-remote-branches/

누군가 원격 저장소에서 분기를 삭제 한 후 git은 사용자가 git pull 또는 git fetch를 수행 할 때 로컬 저장소 분기를 자동으로 삭제하지 않습니다. 그러나 사용자가 원격 저장소에서 삭제 된 모든 추적 분기를 로컬 저장소에서 제거하려면 다음을 입력하십시오.

자식 원격 정리 원점

참고로, -p 매개 변수는 git fetch -p실제로 "다듬기"를 의미합니다.
어떤 방법을 선택 하든지 존재하지 않는 원격 브랜치는 로컬 리포지토리에서 삭제됩니다.


나는 새로운 것을 가져 오지 않기 때문에 이것을 좋아합니다.
Marek R

30

다음을 수행해야합니다

git fetch -p

지점 목록을 동기화하기 위해. 자식 설명서는 말한다

-p, --prune
가져 오기 후에 더 이상 원격에 존재하지 않는 원격 추적 참조를 제거하십시오. 태그는 기본 태그 자동 추적 또는 --tags옵션 으로 인해 가져 오는 경우에만 제거되지 않습니다 . 그러나 명시 적 참조 스펙 (예 : 명령 행 또는 원격 구성 (예 : 원격이 --mirror옵션 으로 복제 된 경우 )) 으로 인해 태그가 페치되면 태그 도 제거 될 수 있습니다.

git fetch origin -p --progress진행률 표시기를 보여주기 때문에 개인적으로 사용하고 싶습니다 .



6

에 관해서 git fetch -p , 그것의 행동은 Git 1.9에서 바뀌었고, Git 2.9.x / 2.10만이 그것을 반영합니다.

Jeff King ( )의 commit 9e70233 (2016 년 6 월 13 일)을 참조하십시오 . ( Junio ​​C Hamano의해 합병 - 커밋 1c22105 , 2016 년 7 월 6 일)peff
gitster

fetch: 가지 치기 전에 발생한 문서 가져 오기

이것은 10a6cc8 에서 변경 되었지만 ( fetch --prune2014-01-02 가져 오기 전에 제거 ( prune) 실행), 그 논의에서 아무도 우리가 "후"를 명시 적으로 광고하고 있다는 것을 깨닫지 못한 것 같습니다.

따라서 설명서에는 이제 다음과 같이 명시되어 있습니다.

가져 오기 전에 원격에 더 이상 존재하지 않는 원격 추적 참조를 제거하십시오.

그 이유는 다음과 같습니다.

frotz/nitfol이전 가져 오기에서 " " 라는 원격 추적 분기가 있고 업스트림에 이제 " frotz" 라는 분기 가 있으면 가져 오기에서 " frotz/nitfol"가있는 " git fetch --prune"을 (를) 업스트림에서 제거하지 못합니다 . git은 사용자에게 " git remote prune"를 사용하여 문제를 해결 하라고 알려줍니다 .

fetch --prune가져 오기 작업 전에 제거 작업을 이동하여 " "작동 방식을 변경하십시오 . 이런 식으로 사용자에게 충돌을 경고하는 대신 자동으로 수정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.