如何回滚到某个提交?

时间:2019-06-18 16:52:27

标签: git github commit

我有一个提交列表。需要回滚到some fit & upd(97f962f143b136d0d6dcbdfc02afc8253c767d7f)。需要这样做,以便删除在后续提交中创建的所有文件。 enter image description here

git checkout 97f962f143b136d0d6dcbdfc02afc8253c767d7f

enter image description here

upd

enter image description here

1 个答案:

答案 0 :(得分:4)

您的目标是在“适应并更新”之后删除所有提交,还是只是在该状态下获得一棵工作树?我假设您尝试过

git rest --hard 97f962f

如果失败,我将在您想要的特定提交时从github下载整个软件包,并用这些文件替换您的工作树。可能不建议这样做或不安全,但我已经做了很多次(考虑备份本地存储库)。

转到github.com上的存储库。单击“ X提交”(最左侧的按钮),导航到所需的提交,单击提交的名称,单击“浏览文件”,“克隆或下载”,然后下载zip。与该提交中的文件一样,您将获得一个zip文件。如果您的HEAD指向您想要的位置,那么可以用下载的树替换树中的文件。

如果您采用这种骇人听闻的解决方案,则您的存储库可能出了点问题,但如果可行,它就会起作用。

如果重置不起作用,您可以考虑尝试git revert。不应该这样使用它,但是您可以创建一个新分支,并还原最近一次和您想要的所有提交(使用--no-commit选项)。您应该最终找到与所需提交匹配的工作目录。不是一个好方法,但是如果重设根本不起作用,那么值得一试。