2010-12-08 49 views
11

有沒有一種方便的方式讓我的本地git倉庫忘記已被刪除的遠程分支? 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 2010-12-09 08:53:37

+0

你也想看看你的`.git/config`文件,並在那裏刪除它們的任何提及。 – MatrixFrog 2010-12-22 17:07:29

回答

0

在第一個想到的,我會建議嘗試git remote prune。從documentation摘錄:

修剪

刪除下的所有陳舊遠程跟蹤 分支機構。這些陳舊的 分支已從遠程存儲庫中刪除 ,引用爲 ,但仍位於本地 「remotes /」中。

使用--dry-run選項,報告 分支將被修剪,但 實際上修剪它們。

我想,這也應該與遠程叫svn工作...

+1

nope ... git-svn不以標準方式存儲遙控器,也不在其方便的抽象中...沒有遙控器,`git remote`沒有輸出。 – 2010-12-28 01:19:54

15

您可以刪除孤立通過執行以下命令遠程分支:

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

要刪除所有孤立分支機構一次而不是一次一個,請參閱答案here