【发布时间】:2022-10-24 04:20:14
【问题描述】:
当我真正想做的是一个 squash 和 merge 时,我不小心合并了一个 Pull Request。结果,我的提交历史现在包含来自该 PR 的约 20 个单独的提交。
我的目标是双重的:
- 恢复到上次“良好”提交
- 从我的提交历史中清除“错误”提交
大多数这些“坏”提交出现在最后一次“好”提交之后,但是其中少数出现在最后一次“好”提交之前(我猜这是由于他们的提交日期),我担心这会让我的事情变得复杂。
幸运的是,自从犯了这个错误以来,没有任何额外的提交。
根据我迄今为止的研究,我可以通过执行以下操作恢复到最后一个“好”提交:
git reset --hard <commit-before-the-merge>但是鉴于“坏”提交出现在最后一次“好”提交之前和之后,我不确定这会解决问题,而且我不想在没有合理信心的情况下尝试它会起作用。
上面提到的命令可以解决问题,还是我应该使用一组不同的命令来让自己摆脱这种混乱?
【问题讨论】:
-
“坏”提交不应成为“好”提交历史的一部分。您可以确认这一点:在您的
git reset --hard ...之后运行git log --oneline --graph