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

Tim*_*dad 6 git merge branch

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

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

我认为类似的svn命令是:

svn merge $SVN_REPO/trunk $SVN_REPO/branch/dev_branch deploy_dir
Run Code Online (Sandbox Code Playgroud)

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

这可能吗?

nis*_*tjr 13

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

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
Run Code Online (Sandbox Code Playgroud)

另一种方法是创建一个补丁,然后应用它:

git diff commitid1 commitid2 > something.patch
cd deploy
git apply something.patch
Run Code Online (Sandbox Code Playgroud)