Git 撤消从新分支恢复提交?

时间:2021-07-02 08:10:43

标签: git

我这样做了,在“伪 GIT”中进行了简化

In branch master, commit A
In branch master, commit B
Push to server
-- We see that there's a bug
In branch master, revert commit B, A
-- Now, to test what happened:
new branch TEST from old commit A
-- Looking at it, we find out that the issue was in somebody else's API,
--  so our original commit A was OK. They fix their API

你会在这里做什么?返回 A 的最优雅方法是什么,只需“还原还原”?

谢谢

2 个答案:

答案 0 :(得分:0)

<块引用>

返回 A 的最优雅方式是什么,只需“还原还原”?

是的。其他任何事情都会涉及改写历史,这是一个糟糕的主意。

答案 1 :(得分:0)

这可能看起来不是一种优雅的方式,但如果您的提交已经推送到远程,这是最好的方式。

如果您在本地机器上遇到同样的问题,您可以重置这些提交,覆盖历史记录。这将导致更清晰的历史记录,但问题是,如果您更改历史记录,您要么更改提交的哈希值(您基本上创建一个新提交,您不能只是编辑),或者您完全删除您的提交(例如在你的情况下)。

如果你想要更改的提交已经在 repo 中,那么你会遇到冲突。 Git 不会让你覆盖那些提交。

虽然有一个选项可以强制推送。仅当您单独处理 repo 或与团队协商后,您可能会考虑它。

最后,恢复提交并不是一个坏主意,我见过很多情况,即使在“干净”的项目中,也有一次又一次的恢复。所以我想没问题。