7

我有一个开发存储库和一个部署存储库。部署代码时,代码库会从 dev 中签出,rsync'd 到部署工作副本,并提交到部署存储库。因此,这些存储库是独立的,但相似。

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

我认为类似的 svn 命令将是:

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

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

这可能吗?

4

1 回答 1

19

一种方法是从另一个 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

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

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