合并两个git分支之间的diff并将其应用于工作副本

时间:2013-01-16 03:29:54

标签: git merge branch

我有一个开发存储库和一个部署存储库。在部署代码时,会从dev中检出代码库,将rsync与部署工作副本进行rsync,并将其提交到部署存储库。因此,这些存储库是分开的,但类似。

在开发中,我有一个分支。我想将该分支“应用”到部署工作副本。换句话说,我想将分支上的所有提交(不包括合并)重放到部署存储库(如果可能的话,在一次提交中),或者在分支和主服务器之间进行差异并将其应用于部署工作副本。 / p>

我认为类似的svn命令是:

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

...其中deploy_dir甚至不需要是工作副本。

这可能吗?

1 个答案:

答案 0 :(得分:13)

一种方法是从另一个仓库获取分支:

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