2010-12-08 6 views
11

삭제 된 원격 브랜치를 잊어 버릴 수있는 내 로컬 자식 저장소를 만드는 편리한 방법이 있습니까? git svn fetch은 내가 바라는 것처럼 "모든 것을 다시 동기화하지"않습니다. 내 로컬 저장소는 표준 svn 저장소 레이아웃 (git svn -s …)의 가져 오기를 사용하여 설정되었습니다. 관련어떻게하면 git-svn이 더 이상 존재하지 않는 원격 브랜치를 제거 할 수 있습니까?

: 첫 번째 생각에 Why does git remote not list anything on my git-svn repo?

+0

나의 첫 번째 생각은'.git/refs/remotes'에 단지 작은 텍스트 파일 인 그 브랜치들을 나타내는 파일들을 삭제하는 것입니다. 하지만 아마도 그보다 더 정확한 방법이있을 것입니다. 여러분이하고있는 일을 정말로 모른 채'.git' 폴더를 샅샅이 뒤지는다면 상황을 망칠 가능성이 있습니다. – MatrixFrog

+0

'.git/config' 파일을보고 거기에 언급 된 것을 지우고 싶을 수도 있습니다. – MatrixFrog

답변

0

, 나는 git remote prune을 시도하는 것이 좋습니다 것입니다. documentation에서 발췌 :

이 아래에있는 모든 오래된 원격 추적 지점을 삭제

치다. 이 오래된 가지가 이미 제거되었으므로 원격 저장소의 은 (는) 을 (를) 참조하지만 여전히 "remote /"에서 로컬로 을 사용할 수 있습니다.

--dry-run 옵션을 사용하면 브랜치가 프 i 될 내용을보고하지만 실제로는 을 프 i하지 마십시오. 나는이 또한 원격 svn라는 작업을해야한다고 생각

...

다음과 같은 명령을 실행하여 원격 지점 고아 제거 할 수 있습니다
+1

nope ... git-svn은 리모컨을 표준 방식으로 저장하지 않고 편리한 추상화가 아닌 ... 리모컨이 없기 때문에 '자식 원격'에는 출력이 없습니다. –

15

:

git branch -d -r my_branch 
rm -rf .git/svn/refs/remotes/my_branch 

한 번에 모든 고아 가지를 제거하려면를 한 번에 하나씩이 아니라 대답은 here입니다.

+0

브랜치가 표시되지 않도록하려면'rm .git/refs/remotes/origin/my_branch' 명령을 사용해야합니다. 또한 rm -rf .git/svn/refs/remotes/my_branch /'대신'rm -rf .git/svn/refs/remotes/origin/my_branch /'를 사용하십시오 ('origin'에주의하십시오). 왜 그런가? –

+0

차이점에 대해 스스로 답하기 위해, 2.0 이후의 기본 동작 인 복제시'--prefix'를 사용했을 것입니다. –

관련 문제