選択したscmとしてgitを使用していますが、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ブランチディレクトリは.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
オプションはありますが mystic --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"