Git - 使用旧提交从master分支

时间:2016-05-17 06:01:39

标签: git branch

让我们说我的提交图如下:

1 -- 2 -- 3 -- 4
               |
             master

现在,我想使用提交#2从HEAD分支,即我希望有类似的东西

              branch
                 |
                 5
                /
1 -- 2 -- 3 -- 4
               |
             master

但我希望提交#5反映提交#2中文件的状态。

这可能吗?

谢谢

2 个答案:

答案 0 :(得分:1)

取决于您是否希望新提交包含与#2相同的更改(如果可能;可能存在阻止此操作的合并冲突):

git checkout -b branch
git cherry-pick hashOfSecondCommit

或者您是否希望所有文件看起来与#2时的方式完全相同:

git checkout -b branch hashOfSecondCommit
git reset --soft master
git commit

cherry-pick做的是“重播”另一次提交,reset --soft更改“活动”提交的内容而不更改工作目录中的文件(与checkout相对)

答案 1 :(得分:0)

除了@AasmundEldhuset的git cherry-pick之外,你还可以使用git rebase。

git rebase --onto 2 4 5

看起来要删除新分支中的3和4。