web-dev-qa-db-ja.com

Git:git svn fetchはどのように機能しますか?

git svn fetchはどのように機能しますか?マスターまたは他のブランチとマージまたはリベースできるようにフェッチされるブランチはどこにありますか? git remotegit svnリポジトリに何も提供しないため、データはどこでフェッチされますか?

16
Jacob Krieg

git svn fetchの仕組みは次のとおりです。

git-svnを使用する場合、gitを使用する場合のように、svnサーバーのremotesがなく、リンクがあるだけです。リモートへsvnローカルのサーバー。gitconfigファイル。

現在のブランチを最後のリビジョンに更新する場合は、git svn rebaseを使用できます。ただし、svnプロジェクトが大きい場合は、最後のリビジョンが正常なビルドであるかどうかわからない状況にある可能性があります。また、ビルドが成功したことが確実な特定のリビジョンに更新する場合、たとえば、最後に成功したビルドを提供するJenkinsを使用する場合は、最初に必要なリビジョンにfetchする必要があります。次にrebaseフェッチされたコミットを使用します。

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

16
Jacob Krieg

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

2
Levi Haskell