[英]Delete a svn-Branch via git?
我使用git作為scm的首選,但必須使用svn-repo。 我可以像這樣創建一個svn-remote-branch:
git svn branch the_branch
但是我如何刪除遠程分支?
目前,無法使用git-svn刪除SVN分支。 但是使用SVN很容易刪除分支,甚至不用檢查它。 所以簡單地輸入
svn rm $URL/branches/the_branch
請注意,刪除Subversion分支不會導致它從git-svn存儲庫中刪除。 (這是故意的,因為刪除Subversion分支不會導致任何信息丟失,而刪除git分支會導致在下一個git垃圾收集后忘記它的存在。)所以如果你想從你的git中刪除遠程SVN分支存儲庫,您必須手動執行:
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分支dirs位於.git / svn / refs / remotes /中,這很簡單,可以從原始說明中找到,更改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
)
如其他答案所述,手動步驟如下:
git log -1 $commit
git-svn-id: $url
行 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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.