让我们说我的提交图如下:
1 -- 2 -- 3 -- 4
|
master
现在,我想使用提交#2从HEAD分支,即我希望有类似的东西
branch
|
5
/
1 -- 2 -- 3 -- 4
|
master
但我希望提交#5反映提交#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。