通过git删除一个svn分支?

我使用git作为scm的select,但必须使用svn-repo。 我可以像这样创build一个svn-remote-branch:

git svn branch the_branch 

但是我怎样才能删除远程分支?

目前,使用git-svn删除SVN分支是不可能的。 但使用SVN删除分支很容易,甚至不必检查出来。 所以只需input

 svn rm $URL/branches/the_branch 

请注意,删除一个Subversion分支不会导致它从git-svn仓库中被删除。 (这是故意的,因为删除一个Subversion分支不会导致任何信息丢失,而删除一个git分支会导致它的存在在下一个git垃圾回收之后被遗忘。)所以,如果你希望远程SVN分支从你的git中被删除仓库,你必须手动完成:

 git branch -D -r the_branch rm -rf .git/svn/the_branch OR rm -rf .git/svn/refs/remotes/f8745/ (for newer versions) 

要删除一个与Subversion标签相对应的git分支,这些命令略有不同:

 git branch -D -r tags/the_tag rm -rf .git/svn/tags/the_tag 

这对我很好,谢谢。 不知道如果我的环境是不同的,或者这是在一个更新的版本的git中被改变,但svn分支目录位于.git / svn / refs / remotes /这很简单,从原来的指令find,改变rm命令:

 rm -rf .git/svn/refs/remotes/the_branch 

不知道有关标签,因为我没有使用那么多。

Opps,最高的答案是在2009年写的,现在正确的方法是删除远程标签

 svn rm svn://dev.in/branches/ios_20130709150855_39721/ git branch -d -r ios_20130709150855_39721 

截至2017年,你还没有git svn branch --delete 。 ( -d选项在那里,但是它代表了神秘的--destination

如其他答案中所述,手动步骤是:

  1. $ git log -1 $commit
  2. 在提交消息中寻找git-svn-id: $url
  3. $ svn rm $url

我懒得做这些,做了一个别名:

 [alias] svn-rm-branch = "!f() { if git_svn_id=\"$(git log -1 --format=%B \"$@\" | grep -o '^git-svn-id:[^@]*')\" ; then svn rm --editor-cmd=\"$(git var GIT_EDITOR)\" \"$(echo $git_svn_id | cut -d' ' -f 2)\" ; else echo No git-svn-id in the message of the commit \"$(git rev-parse \"$@\")\" 1>&2; fi }; f"