如何在保持git历史前进的情况下恢复提交



假设我有一个大项目,有一个大团队和一个快速的交付速度。我写一些代码,做一个提交,然后把提交推到原点。

然后我决定我不再想要那个提交。如果我要

git reset --hard HEAD~1

或类似的东西,我的历史回到过去,GitHub一直坚持让我运行拉,因为我的本地现在落后于GitHub。

相反,我想做的是回到一个提交,但有历史显示,好像我做了最初的提交,然后做了另一个提交,但第二次提交实际上只是删除了第一次提交中的代码。这样其他团队成员就可以在任何时候拉,而不会把历史搞砸。

我怎样才能做到这一点?

相反,我想做的是回到一个提交,但有历史显示,好像我做了最初的提交,然后做了另一个提交之后,但第二次提交实际上只是删除了第一次的代码

这是愚蠢的。你不能一边倒退一边假装前进。与其让历史以某种方式出现,不如让历史以这种方式出现——也就是说,你实际上进行了最初的提交,然后又进行了另一次提交,删除了第一次提交所引入的更改。这就是git revert的作用,所以就用它吧。这没什么不光彩的;错误确实会犯,改正错误是工作的一部分。

最新更新