假设我有这样的提交历史:
commit 1 - The first commit
commit 2 - The commit I want to revert, but keep the changes of
commit 3 - The third commit
commit 4 - The fourth commit
[uncommited work]
如果我还没有推送任何内容(或者只提交1),我该如何删除提交2,但是将提交2中所做的更改应用于当前未提交的工作?
我所能找到的只是关于如何删除提交以及它的更改或重置为该提交,这将(根据我的理解)从历史记录中删除所有提交。
答案 0 :(得分:2)
我会按照你想要的方式重新排序修改,然后选择提交2,存储弹出,然后将HEAD指针设置为“rebuilt”提交4:
git stash save "will come back"
git checkout commit1
git cherry-pick commit2..commit4
git cherry-pick commit2
git stash pop
git reset --soft HEAD~1
应该这样做
答案 1 :(得分:0)
我相信git rebase -i HEAD~3
应该做这个伎俩。
然后,您将能够选择提交2进行编辑,更改提交的内容或已更改的文件,然后git将在重新编辑的提交2“重放”提交3和4