web-dev-qa-db-ja.com

git-svnで特定のsvnブランチをリモートリポジトリとして使用するにはどうすればよいですか?

警告の言葉:私はgit全般にn00bです。私のチームはsvnの機能ブランチを使用しており、git-svnを使用して特定の機能ブランチでの作業を追跡したいと考えています。私は(大体) Andy Delcambreの投稿 に従ってローカルgitリポジトリを設定しましたが、これらの指示によりgitsvnリモートリポジトリとして最後に変更されたブランチ。問題は、私が気にしているブランチではないということです。 git-svnが使用するブランチを制御するにはどうすればよいですか?または、私はこれに完全に間違っていますか?

更新:-T-b、および-tオプションを使用しました(私の場合、svnリポジトリには複数のプロジェクトがありますが、git私が取り組んでいるプロジェクトのみを含むリポジトリ。

62
Hank Gay

Muchas graciasはこの便利なBartのブログをご覧ください gitのsvnブランチのリファレンス 。どうやら必要なのは、gitブランチの作成時にリモートブランチを指定することだけでした。たとえば、

git checkout -b git-topic-branch-foo foo

ここで、fooはリモートブランチの名前です。

61
Hank Gay

また、これをご覧になるかもしれません: git-svnはゲートウェイドラッグです-robby on Rails

ローカルブランチが正しいリモートsvnブランチを指していることを確認する必要があるときに、次のようなものを使用しました。

git branch -r

追跡するリモートブランチの名前を取得します。それから

git reset --hard remotes/svn-branch-name

別のリモートブランチを指すようにローカルブランチを明示的に変更する。

30
Sam Mulube

最初に「git svn fetch」を実行する必要がありました。関連付けたいブランチはgitクライアントの後に作成されていたからです。

9
android.weasel

Git-svnを使用していますが、SVNブランチと相互運用する機能は使用していません。そうは言っても、あなたがフォローしているチュートリアルでは、git svn initに -T、-b、-t オプションを使用していません。これらのオプションは、git-svnにアップストリームtrunk/branches/tagsディレクトリの名前を伝えます。これは、あなたの状況では重要かもしれません。

1
Greg Hewgill