【发布时间】:2017-05-27 02:31:45
【问题描述】:
在极少数情况下,git pull 会导致我们的网站出现问题,我需要快速倒带时钟,以便开发人员解决问题。我试过git reset HEAD@{1} 但这并没有奏效,因为某些文件仍然被更改。好像它只回滚一些文件。
在最近的git pull 命令之前,我是否可以调用一个命令来可靠地将文件还原回?
【问题讨论】:
-
这能回答你的问题吗? How to undo a git pull?
在极少数情况下,git pull 会导致我们的网站出现问题,我需要快速倒带时钟,以便开发人员解决问题。我试过git reset HEAD@{1} 但这并没有奏效,因为某些文件仍然被更改。好像它只回滚一些文件。
在最近的git pull 命令之前,我是否可以调用一个命令来可靠地将文件还原回?
【问题讨论】:
找到您想要保留的最新提交,并计算在该提交之后出现了多少提交。例如,假设您最新的git pull 带来了三个新的提交,并且您想要核对它们。在这种情况下你可以使用git reset --hard:
git reset --hard HEAD~3
只需将3 替换为您想要删除的提交即可。
在此之后您打算做什么是一个挥之不去的问题。现在远程分支仍然会有这三个不需要的提交。但是假设你通过重新提交来解决问题,你可以避免重写历史的问题。
【讨论】:
你只是在做吗
git reset HEAD@{1}
?如果是这样,这将使用 --mixed 模式作为默认模式,这可以解释为什么您会看到更改的文件。我怀疑你应该使用
git reset --hard HEAD@{1}
这样它也会重置您的工作树。
【讨论】: