这比我之前发现的线程要复杂一些。说我有一个分支,有一堆提交。在某个时候,我意识到我不想要一些掩埋的提交(这是由错误的合并引起的)。所以历史是这样的:
e48ca7de8t
a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit
2045cc737a
59c2a4127c
f9daf617sj
5f59c2a412
HEAD
基本上,我想摆脱两个不需要的提交。这可能吗?
我想我可以一遍又一遍地做git reset HEAD~
,直到达到我不想要的为止,隐藏更改并对我想要的最后一个做一个git reset --hard
。但我想知道是否有一种更清洁,更安全的方法。
谢谢!
答案 0 :(得分:1)
您可以使用git rebase --onto
将一系列提交重新设定为特定的提交。对于上面的示例(假设分支名称为mybranch
:
git rebase --onto 2045cc737a e48ca7de8t mybranch
这样,不需要的提交
a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit
在重定基期间被忽略。