在 Git 存储库中测试旧提交

Test old commit in Git Repository

我目前有一个项目(JavaScript),其中有一个错误,我确定我之前修复了它,现在我的问题是如何恢复到旧提交并检查我的版本本地主机。

但我不想丢失我的 git 存储库中的任何更改我只想检查项目如何看待提交 X,我该如何管理它。

我正在使用 gitkraken 作为 gui。

  • 确保没有未提交的更改;如有必要,提交或隐藏它们
  • 在您当前的 HEAD 处创建一个新分支(使用 Branch 按钮)
  • 搜索要查看的提交
  • 右键单击提交,选择 Reset <branchname> to this commit > Hard - discard all changes。这会将您刚刚创建的分支重置为此提交。
  • 你回到了过去。测试并检查您需要的一切。如果你想回到现在,就看看你原来的分支。

编辑: 还有更简单的方法!

  • 确保没有未提交的更改;如有必要,提交或隐藏它们
  • 搜索要查看的提交
  • 右键单击提交,选择 Create branch here。输入分支名称。这将在这次提交时创建一个分支。
  • 双击查看新建的分支。
  • 你回到了过去。测试并检查您需要的一切。如果你想回到现在,就看看你原来的分支。

如果您不确定错误是什么时候 introduced/fiex 您可以使用 git 的 bisect 方法:https://git-scm.com/docs/git-bisect

git bisect start
git bisect bad COMMIT_KNOWN_TO_FAIL
git bisect good COMMIT_KNOWN_TO_PASS

然后 git 将 select 在中间提交。您可以进行检查,并根据您的测试结果致电:

 git bisect good

如果测试通过并且

 git bisect bad

如果测试失败。

然后 git select 如果测试失败,则对前 进行另一次提交,如果测试通过,则对 **差* 进行提交。

由于您正在寻找问题 dis 出现的时间,您可能需要在继续时切换 "good" 和 "bad" 的含义...

当您识别出恶意提交调用时

git bisect reset