17

一个有两个分支的存储库。

主分支提交:

c1, c2, c3, c4, c5, c6, c7, ..., c15, ...

暂存分支提交:

c1、c2、c3、c4、c5、c6、c7

我想在c7之后将所有提交从主分支移动到暂存分支

然后恢复主分支

git reset --hard c7-hash

如何将特定提交从一个分支移动/复制到另一个分支?

4

1 回答 1

35

在您描述的情况下,暂存分支上的所有提交也都在主分支上,这很容易:

git checkout staging
git merge master
git checkout master
git reset --hard c7-hash

合并将是一个快进。

在一般情况下,您可以使用git cherry-pick c8 c9 c10 c11 c12 c13 c14 c15挑选单个提交到当前分支。一个更短的方式来挑选所有在 master 但不是当前分支的提交,git cherry-pick ..master还有其他示例显示git help cherry-pick

于 2013-02-04T23:48:27.727 回答