【发布时间】:2019-04-17 10:03:17
【问题描述】:
我目前有一个项目(JavaScript),其中有一个错误,我确信我之前修复了它,现在我的问题是如何恢复到旧提交并在我的本地主机上检查该版本。
但我不想在我的 git 存储库中松动任何更改,我只想检查项目如何看待提交 X,我该如何管理。
我正在使用 gitkraken 作为 gui。
【问题讨论】:
标签: git git-revert gitkraken
我目前有一个项目(JavaScript),其中有一个错误,我确信我之前修复了它,现在我的问题是如何恢复到旧提交并在我的本地主机上检查该版本。
但我不想在我的 git 存储库中松动任何更改,我只想检查项目如何看待提交 X,我该如何管理。
我正在使用 gitkraken 作为 gui。
【问题讨论】:
标签: git git-revert gitkraken
Branch 按钮)Reset <branchname> to this commit > Hard - discard all changes。这会将您刚刚创建的分支重置为此提交。编辑: 还有更简单的方法!
Create branch here。输入分支名称。这将在此提交处创建一个分支。【讨论】:
gitkraken 答案!我看到 gitkraken 不只是 checkout 提交。
git checkout <commit-id> 直接检查提交;虽然这会导致分离的 HEAD 状态。然而,在 gitkraken 中,你总是需要使用分支。
如果您不确定何时引入/修复错误,您可以使用 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会在中间选择一个commit。您可以进行检查,具体取决于您调用的测试结果:
git bisect good
如果测试通过并且
git bisect bad
如果测试失败。
如果测试失败,git 会选择另一个提交给前一个good,如果测试通过,git 选择另一个提交。
由于您正在寻找问题dis何时出现,因此您可能需要在继续时切换“好”和“坏”的含义......
当您识别出 malicios 提交调用时
git bisect reset
【讨论】: