2013-07-19 2 views
15

프로젝트 저장소의 원격 지점을 삭제하고 싶습니다. 나는 다음 명령을 실행했습니다힘내 원격 지점 제거

git push origin :name_of_branch 

을 내가

git branch -r 

I가 나타나지 삭제 한 지점과 원격 지점을 나열하지만 때 내 파트너는

을 실행
git fetch 

이후

git branch -r 

목록에서 삭제 한 지점 name_of_branch은 여전히 ​​목록에 있습니다. 어떻게 목록의 완전히 지점을 삭제할 수

error: unable to delete 'name_of_branch': remote ref does not exist 
error: failed to push some refs to 'the_name_of_the_repository' 

: 그러나, 그는

git push origin :name_of_branch 

그는 다음 메시지를 수신와 분기를 삭제하려고?

+0

[Git 브랜치를 로컬 및 원격으로 삭제 하시겠습니까?] (http://stackoverflow.com/q/2003505/456814). –

답변

23

당신의 파트너가 git fetch을 실행할 때, 분기 삭제가 자신의 저장소에 "적용"되지 않기 때문에이 발생합니다. fetch은 분기 만 업데이트하고 추가합니다.

이들은 git remote prune origin을 실행하여 업스트림 리포지토리에 더 이상 존재하지 않는 목록의 원격 분기를 잘라낼 수 있습니다.

+4

참고로,'git remote prune'은 다소''git fetch --prune' 또는'git fetch -p'를 위해 더 이상 사용되지 않습니다. [Git 버전 1.6.6 릴리즈 노트] (https://github.com/git/git/blob/v2.0.0/Documentation/RelNotes/1.6.6.txt # L162-L166) : "['git fetch --prune'은'원격 업데이트'와'원격 원격 제거'를 덜 필요로합니다 ('원격 업데이트를 제거 할 계획이 없습니다.). " –

1
git branch -r -d 'remote-branch' 
9

git fetch --prune <remote>은 원격 저장소에 더 이상 존재하지 않는 지점 (즉, 원격 지점에서 삭제 된 지점)을 추적하는 모든 원격 추적 분기를 제거하는 데 사용할 수 있습니다. official Linux Kernel Git documentation for fetch에서 : 인출 후

-p

--prune

, 더 이상 원격에 존재하지 않는 원격 추적 브랜치를 제거합니다.

당신은 the documentation for git branch에 명시된 바와 같이 명령

git branch -D -r <remote>/<branch> 

와 원격되지 않는 원격 추적 브랜치 수 있습니다 -d과 함께

사용 -r 원격 추적 브랜치를 삭제합니다. 리모트 리포지터리 (repository)에 존재하지 않게되었을 경우, 또는 git fetch (을)를 다시 취득하지 않게 (듯이) 설정했을 경우는, 리모트 분기를 삭제하는 것이 의미가있는 것에주의 해주세요.