我可以从分支中删除以前的提交吗?

时间:2019-06-13 15:20:23

标签: git

这比我之前发现的线程要复杂一些。说我有一个分支,有一堆提交。在某个时候,我意识到我不想要一些掩埋的提交(这是由错误的合并引起的)。所以历史是这样的:

e48ca7de8t
a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit
2045cc737a
59c2a4127c
f9daf617sj
5f59c2a412
HEAD

基本上,我想摆脱两个不需要的提交。这可能吗?

我想我可以一遍又一遍地做git reset HEAD~,直到达到我不想要的为止,隐藏更改并对我想要的最后一个做一个git reset --hard。但我想知道是否有一种更清洁,更安全的方法。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用git rebase --onto将一系列提交重新设定为特定的提交。对于上面的示例(假设分支名称为mybranch

git rebase --onto 2045cc737a e48ca7de8t mybranch 

这样,不需要的提交

a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit

在重定基期间被忽略。