从git-svn迁移到git后,如何删除虚拟远程分支?

时间:2012-03-04 04:24:20

标签: git migration branch git-svn

我已经使用git-svn一段时间了(我团队中的其他人一直在使用svn)。我们决定开始使用git。为了做到这一点,我使用了git repo,这是我的" side"像这样的git-svn:

$ git remote add origin git@github.com:mycompany/myproject.git
$ git push -u origin master

这很好,但是当这个过程完成时,我保留了git-svn在我第一次开始使用它时产生的所有这些荒谬的分支,只有一点扭结; git甚至不再承认他们是分支机构。这是我的列表的样子:

$ git branch -r
domain_integration
dot-org
dot-org@1977
email-edit-page
origin/account-integration
origin/master
origin/stable
prototype_to_jquery-1.1.0
stable@1976
tags/development-1.1.0.0
tags/pre-2011-02-08
tags/production-1.0
tags/stable-1.0.0
tags/stable-1.0.1
tags/stable-1.1.0
tags/stable-1.1.0.1
trunk-stash

这些很烦人,虽然我知道它们来自哪里(大多数),但现在我甚至无法删除它们。发生这种情况:

$ git branch -d trunk-stash
error: branch 'trunk-stash' not found.

我能够通过进入.git / refs / remotes并删除它们来修复其中一些,但那里只有一些。我能找到的唯一其他地方是.git / info / refs。其外观如下:

...
7788d300f0d4370d65a3ccf3e47d90f7fb16b0b4        refs/remotes/tags/stable-1.0.0
aace34d6745080ce2b6b29e927f5d1b050b99511        refs/remotes/tags/stable-1.0.1
58bd2ac23d5979ff61bd6305df18f8a5da50f888        refs/remotes/tags/stable-1.1.0
644fd55fcdf2569305cdbe0b6fefb9f247625658        refs/remotes/tags/stable-1.1.0.1
bc8e9f9177c9612aceb55624adea1b02e9e8620f        refs/remotes/trunk
69493e14345e6a7a4db324935bccd6393f201da4        refs/remotes/trunk-stash
25b7024f6c1d38c10400b2c2e7b446aae1e84e06        refs/stash
...

我认为这只是将分支与其最后提交相关联。删除"假的"是否有意义?那些?这会破坏什么吗? (它会起作用吗?)

1 个答案:

答案 0 :(得分:2)

如果您只想要主分支,您可以随时删除本地仓库并重新克隆它。如果你不关心除主分支之外的任何事情,这是最简单的。你总是可以尝试:

git remote prune origin

删除不再是原产地但保留在本地的远程参考。