2013-07-02 3 views
10

git svn fetchはどのように機能しますか?私のマスターや他のブランチとマージまたはリベースできるようにフェッチされているブランチはどこにありますか? git remoteが私のgit svnリポジトリに何も与えてくれないので、データはどこに取得されますか?Git:git svn fetchはどのように機能しますか?

答えて

11

これはgit svn fetch作品方法です:git-svnを使用している場合

あなたがリモコンのを持っていません SVNサーバはのgitを使用しているとき、あなたが持っているとして、あなたは自分の地元.gitconfigファイルにリモート SVNサーバーへのリンクを持っています。

現在のブランチを最終リビジョンに更新する場合は、git svn rebaseを使用できます。しかし、あなたのsvnプロジェクトが大きい場合は、あなたが最後のリビジョンが成功したビルドであるかどうかわからない状況にあるかもしれません。最後に成功したビルドを提供するJenkinsを使用するなど、ビルドが成功した特定のリビジョンに更新したい場合は、最初にをリビジョンにをフェッチしてからrebaseフェッチされたコミットを使用します。

この場合はgit svn fetch -r <revision>です。これにより、コミットが必要なリビジョンまでローカルに取得されます。フェッチされたデータをリベースするには、git svn rebase -lまたはgit svn rebase --localを使用する必要があります。ローカルのリベースを行うためにオンラインにする必要はありません。

-1

残念ながらgit-svnツールは実際にはリモートSVNブランチを真のGitリモートにしません。彼らはリモコンのように見えますが、実際にはリモコンとしては機能しません。 git-svnは内部的にブランチを追跡し、私もそれを少しイライラしています。

ただし、SVNブランチから分岐することも、それらからマージすることもできます。 git-svnのによって作成されたものを擬似支店を含むすべてのリモート追跡ブランチを、見にgit branch -rを実行します。

$ git branch -r 
svn/SVNBranch1 
svn/SVNBranch2 
$ git checkout -b branch1 svn/SVNBranch1 
+0

'あなたはSVNブランチから分岐することもできるし、それらからマージすることもできるはずだ。どうして? –

1

デフォルトでは、git-svn追跡ブランチはremotes/git-svnです。これを使用して、git svn fetchによってフェッチされた変更をマージまたはリベースすることができます。

関連する問題