Git - 在 git-svn 克隆后删除远程分支

3

我使用命令git svn clone ... --trunk=trunk --tags=tags --branches=branches克隆了一个SVN仓库。

操作已经成功执行,现在当我列出我的分支时,我有所有过去的标签,例如:

$ git branch -a
* master
  remotes/tags/1.0
  remotes/tags/2.0

我可以轻松地检查分支并创建真正的git标签,但是当我完成后如何删除远程分支 remotes/tags/1.0 呢?

2
你尝试过 git branch -rd tags/1.0 tags/2.0 吗?我自己没有尝试过,所以我把它写成了注释。 - Sascha Wolf
是的,它有效了,谢谢。 - ragu89
3个回答

1

好的,我用命令 svn2git http://myrepo/myproject --nobranches 完成了它。

现在当我列出我的分支时:

$ git branch -a
* master
  trunk@123
  trunk@400
  trunk@400-
  trunk@476
  trunk@476-
  remotes/svn/trunk
  remotes/svn/trunk@123
  remotes/svn/trunk@400
  remotes/svn/trunk@400-
  remotes/svn/trunk@476
  remotes/svn/trunk@476-

这些分支@XXX是什么意思?如何删除所有分支?

我对标签也有同样的行为:

$ git tag
1.0
2.0
2.0@155
3.0

最后,我只想在主分支中恢复我的代码库(trunk),以及在git标签中恢复我的标签。


那看起来像是 https://github.com/nirvdrum/svn2git/issues/91,一个未解决的问题。 - VonC
好的,我已经删除了所有的@XX分支和标签。现在只剩下svn远程分支:remotes/svn/trunk,remotes/svn/trunk@123等。如何删除这些分支? - ragu89
你可以尝试移除远程引用:git remote remove svn,并移除远程跟踪分支(https://dev59.com/Mmcs5IYBdhLWcg3wLQ84#17029936)。 - VonC
请确保您删除的分支不包含您需要的历史记录。您可能需要将它们重新基于主干进行变基,而不仅仅是删除它们。 - VonC
我可以使用 "git branch -rd" 命令删除所有不需要的分支。谢谢您的帮助! - ragu89

1
这对我有效:
git branch -rd tags/1.0 tags/2.0 

1
另一个选择是尝试使用ruby脚本svn2git导入svn repo:

svn2git 是一个小型实用程序,可将项目从Subversion迁移到Git,同时保留主干(trunk)、分支(branches)和标签(tags)的位置。

这意味着'svn branches'标签将成为git repo中的实际git标签。
导入后可能需要更改作者

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接