7

開発リポジトリとデプロイリポジトリがあります。コードをデプロイするとき、コードベースはdevからチェックアウトされ、デプロイ作業コピーにrsyncされ、デプロイリポジトリにコミットされます。したがって、これらのリポジトリは分離されていますが、類似しています。

開発者には、ブランチがあります。そのブランチをデプロイ作業コピーに「適用」したいと思います。つまり、ブランチ上のすべてのコミット(マージを除く)をデプロイリポジトリに(可能であれば1つのコミットで)再生するか、ブランチとマスターを比較してデプロイ作業コピーに適用したいと思います。

同様のsvnコマンドは次のようになると思います。

svn merge $SVN_REPO/trunk $SVN_REPO/branch/dev_branch deploy_dir

...ここで、deploy_dirは作業コピーである必要はありません。

これは可能ですか?

4

1 に答える 1

19

1つの方法は、他のリポジトリからブランチをフェッチすることです。

cd <deploy-path>
git remote add devel <devel-path>
git fetch devel

git cherry-pick devel/master...devel/branch  # Assuming your branch is based on master

別の方法は、パッチを作成してから適用することです。

git diff commitid1 commitid2 > something.patch
cd deploy
git apply something.patch
于 2013-01-16T03:42:54.930 に答える