2011-11-01 1 views
19

명령 git branch -a에는 저장소에없고 지사가 아닌 분기가 나열됩니다. 어떻게 삭제할 수 있습니까?지사가 나열된 지우기 branch -a

* develop 
    master 
    remotes/origin/cloner 

는 예를 들어, remotes/origin/cloner는 REPO에 존재하는 데 사용 있지만 이후 삭제 된 나는 git branch -a를 입력 할 때이 표시되지 싶습니다.

답변

27

는 해당 분기가 원격 저장소에 삭제 된 후 남은 원격 추적 브랜치 (이 경우 같은 origin/cloner)가있는 경우, 모든 원격 추적 분기와 삭제할 수 있습니다

 
git remote prune origin 

< 이름 > 아래에있는 모든 오래된 원격 추적 브랜치를 삭제 :

documentation for git remote이 같이 설명합니다. 이러한 오래된 브랜치는 이름이 > 인 원격 리포지토리에서 이미 제거되었지만 여전히 "remotes/< 이름 >"으로 로컬에서 사용할 수 있습니다.

옵션으로 --dry-run 옵션을 사용하면 어떤 가지가 제거 될지보고하지만 실제로는 제거하지 않습니다.

+4

그것은 맥아 즙의 원치 않는 원격 지점을 제거하려면

git push origin :cloner 

할 h 문서를 인용하고 링크 만하면됩니다. –

+0

Mark, 멋진 편집을 해주셔서 감사합니다! –

-5

원격 저장소 참조가 로컬 복제본에서 삭제되었지만 여전히 'git branch -a'명령의 출력에 나타날 수 있습니다. 어떤 경우 , 당신은 항상 단순히 해당 파일을 삭제하여 모든 참조를 억제 할 수도

git branch -d -r origin/cloner 
+0

porcelain 명령을 사용하는 대신'.git' 파일을 직접 삭제하는 것은 좋지 않습니다. –

+0

힘내는 아주 튼튼합니다. 주어진 분기에 대한 추적을 추가하거나 원격 저장소의 URL을 변경하는 것과 같이 .git/config 파일을 편집해야하는 경우가 가장 편리합니다. 후드 아래에서 직접 살펴보면 Git의 작동 방식을 더 쉽게 이해할 수 있으며 처음 등장했을 때와 같은 마법임을 깨닫게됩니다. 그래서, 모든 사람들이 Git 파일을 편집하는 것은 권하지 않습니다. 그러나 나는 적어도 그 파일들에서 약탈을하는 것이 좋습니다. 미니멈에서는 매우 유익합니다. –

3

는 다음과 같은 명령을 사용할 수 있습니다 더 이상 필요하지 않은 지점을 삭제하려면

+1

'origin/cloner'가 원격 추적 브랜치이기 때문에 이것은'git branch -d -r origin/cloner' 일 필요가 있습니다. –

0

당신은 :

$ rm -f .git/refs/remotes/cloner 
$ rm -rf .git/refs/remotes/deprecated_remote 
+0

이 경우,'cloner' 브랜치는 이미 원격 저장소에서 삭제되었으므로 오류가 발생합니다. 문제는 원격 추적 브랜치'origin/cloner'를 제거하는 방법을 묻는 것입니다.'origin/cloner'는 누군가가'origin '에서'cloner'를 삭제 한 후에 남아 있습니다. –

+0

나는 본다. 그렇다면 git fetch로 원격 브랜치리스트를 새로 고치지 않겠습니까? – Patrick