回答:
私はこの質問が少し前に回答されたことを知っていますが、それを読んだ後、特定のgit svn branchコマンドの例を追加して、典型的なワークフローに関連付けるのに役立つかもしれません。
kchが答えたように、を使用しますgit svn branch。以下に完全な例を示します(-n予行テスト用のに注意してください):
git svn branch -n -m "Branch for authentication bug" auth_bug
これがうまくいくと、サーバーは次のような応答を返します。
https://scm-server.com/svn/portal/trunk at r8914をhttps://scm-server.com/svn/portal/branches/auth_bugにコピーしています ...
-nスイッチがない場合、サーバーはおそらく次のようなものを追加します。
発見の可能な分岐点:https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug、8914
ブランチの親が見つかりました:(refs / remotes / auth_bug)
d731b1fa028d30d685fe260f5bb912cbf59e1971
do_switchで親をフォロー
親の追跡に成功r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8
(参照/リモート/ auth_bug)
その最も良い部分は、次のようにリモートブランチに基づいてローカルブランチを作成できることです。
git checkout -b local/auth_bug auth_bug
つまり、「名前付きローカルブランチをチェックアウトして作成しauth_bug、リモートブランチ(最後のパラメーター)をたどります。auth_bug
()を使用dcommitして、ローカルブランチがそのリモートブランチで動作することをテストします。--dry-run-n
git svn dcommit -n
そしてSVNサーバーは新しいブランチ名で応答するはずです:
https://scm-server.com/svn/portal/branches/auth_bugにコミットしています ...
git coしてgit checkoutの例では、誰のために働くことができるように
git-svn branchコマンドには注意が必要な部分があります。この方法で新しいブランチを作成するには、オンラインである必要があります。あなたはオフラインで次の操作を行うことができます。1. git checkout -b foobar2.ハックハックハック3 git commit -m "Done foobar"。オンラインの場合、1。2 git svn branch foobar. git branch --set-upstream foobar remotes/foobar3.を実行してこの変更をプッシュしますgit svn dcommit。
git checkout -b foobar-new remotes/foobarます。3. git checkout foobar4. git rebase foobar-new5.ブランチがsvnブランチにコミットすることを確認するためのテスト。git svn dcommit --dry-run6.最後に、実際にコミットgit svn dcommit7.削除一時支店git branch -D foobar-new
@kch私は(2008年12月7日)gitのv1.6.1-rc1タグをコンパイルしましたが、それにはgit svn branchコマンドとそのドキュメントが含まれています。したがって、gitのv1.6.1リリースには、(うまくいけば)このコマンドが含まれているはずです。