我这样做了,在“伪 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 的最优雅方法是什么,只需“还原还原”?
谢谢
答案 0 :(得分:0)
返回 A 的最优雅方式是什么,只需“还原还原”?
是的。其他任何事情都会涉及改写历史,这是一个糟糕的主意。
答案 1 :(得分:0)
这可能看起来不是一种优雅的方式,但如果您的提交已经推送到远程,这是最好的方式。
如果您在本地机器上遇到同样的问题,您可以重置这些提交,覆盖历史记录。这将导致更清晰的历史记录,但问题是,如果您更改历史记录,您要么更改提交的哈希值(您基本上创建一个新提交,您不能只是编辑),或者您完全删除您的提交(例如在你的情况下)。
如果你想要更改的提交已经在 repo 中,那么你会遇到冲突。 Git 不会让你覆盖那些提交。
虽然有一个选项可以强制推送。仅当您单独处理 repo 或与团队协商后,您可能会考虑它。
最后,恢复提交并不是一个坏主意,我见过很多情况,即使在“干净”的项目中,也有一次又一次的恢复。所以我想没问题。