힘내 : 원격 지점 정보 업데이트


125

자식 저장소에서 추적하지 않는 원격 지점이 삭제되었습니다. 입력 할 때

git branch -r

삭제 된 분기가 여전히 표시됩니다 (체크 할 수 있습니다)

이 정보를 업데이트하려면 어떤 git 명령을 실행해야합니까?

답변:


39

당신이 같은 것을 수행하면

git branch -d -r remote_name/branch_name

로컬 결제 만 제거합니다. 이 명령은 원격 저장소에 아무런 작업을 수행하지 않으므로 여전히 표시됩니다.

해결책:

git push origin :branch_name

원격 브랜치를 제거합니다 ( ':'참고).

git branch -d branch_name

로컬 결제를 제거합니다.

( 참조 )


146
'git remote prune origin'을 실행하여 원격 참조를 정리할 수도 있습니다.
cmcginty

3
원격 저장소에서 더 이상 추적하지 않는 모든 분기가 제거됩니다. 그러니 조심하세요
Garrett Hyde

4
조금 더 장황하지만 git push <remote> --delete <branchname>원격 브랜치를 삭제 하는 데 사용할 수 있다는 것을 아는 것도 유용하다고 생각합니다 .
AeroCross

이것은 일반적으로 작동하지만 오늘 원격 목록이 업데이트되지 않은 상황에서 캠을 사용하지 않았으므로 분기가 삭제하려고했습니다. 따라서 아래 @Flo 솔루션 이 먼저 필요했습니다.
dgo

284

삭제 된 원격 저장소의 분기 이고 모든 로컬 원격 추적 분기를 한 번에 업데이트하려는 경우 다음을 사용할 수 있습니다.

$ git remote prune <remotename>

지정된 원격지 (즉, 원격 저장소에서 제거 된 분기를 따르는 지점)에 대한 모든 오래된 원격 추적 분기를 삭제합니다.

git remote설명서를 참조하십시오 .


귀하의 답변에 대해 @Casey와 @Jakub에게 감사드립니다! 다음에 사용할 때 로컬에 저장된 원격 지점 정보가 업데이트되지 않는 이유는 git fetch무엇입니까?
JJD

4
@ JJD : 더 이상 존재하지 않는 원격 지점을 기반으로 작업했을 수 있습니다. 따라서 요청하지 않고 사라지는 것은 나쁜 생각으로 여겨졌습니다. 따라서 원격 추적 분기를 명시 적으로 정리해야합니다.
Jakub Narębski

"git gc"는 오래된 원격 브랜치를 정리합니까?
James Wald

@JamesWald : 아뇨, 그렇지 않습니다. git gc객체와 참조를 압축하고 참조되지 않은 객체를 삭제합니다 (안전 여유가 있음).
Jakub Narębski

186
git remote update --prune

모든 원격 지점을 새로 고쳐 새 지점을 추가하고 삭제 한 지점을 삭제해야합니다.

편집 : 원격 업데이트 명령은 기본적으로 원격 의 분기 목록을 가져옵니다. 이 --prune옵션은 더 이상 원격에 존재하지 않는 지점을 가리키는 로컬 원격 추적 지점을 제거합니다 .


이것은 나를 위해 일했습니다. 어떤 이유로 일반적인 'git push origin : <branch_name>'으로 제거 할 수없는 원격 브랜치를 제거해야했습니다.
n0denine

이 답변이 Jakub Narębski의 답변 등을 수행한다고 말하는 것이 정확합니까? 즉, 정리 하고 업데이트를 가져 옵니까?
Frank Tan

14

새로운 원격 브랜치를 볼 때도 유용합니다.

git fetch --all

이것은 나에게 많은 도움이되었습니다. Visual Studio git의 일부 버그로 인해 복제 후 생성 된 새 분기가 표시되지 않습니다. 이 명령은 새로운 지점을 보여줍니다
Venkatesh Muniyandi

좋은 n 간단한 thx 친구, 집에 청동 답변 배지를 가지고 :)
danday74

2

-r-d플래그를 결합하여 원격 분기를 삭제할 수 있습니다 .


좋은 팁! 그러나이 경우 이미 삭제 된 분기가 여러 개 있습니다. 반드시 이러한 업데이트를 가져 오는 명령이 있습니다.
Bain Markev

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