在推送了许多其他提交后撤销 'Revert' 提交

Revoke a 'Revert' Commit after many other commits have been pushed

我们正面临一个奇怪的场景。存储库的状态肯定显示过去几天的工作丢失。在调查 Git 日志后,我们发现其中一个提交是 'revert commit' 并且它已将更改恢复到几天。在那之后,已经推送了更多的提交,我们必须保留这些提交。

所以我们有一个状态 A,然后是状态 B(恢复提交)和状态 C。我们必须转到状态 D,它将从状态 A 构建并从 B 到 C。我们必须删除一个之间的单个提交 B。

还原提交与其他任何提交一样。没有什么特别的。因此,如果您不想还原,请再次还原还原。

举个例子:

D - reverting 'reverting 'questionable work''
|
C - important work
|
B - reverting 'questionable work'
|
A - questionable work

有人撤回了 A (git revert A),因为它看起来有问题,但在 C 发生后你会发现有问题的工作实际上是有用的。所以你再次恢复(git revert B)。有多少提交 A、B/D 或 C 并不重要:您的重要工作 C 可能包含许多提交,您的还原也可能如此。

请注意,如果 C 引入了基于还原的更改,您可能 运行 陷入必须解决的合并冲突。