我想回到之前的提交并运行我的程序,直到我发现某些内容破坏而没有删除或影响我的提交。一旦我找到它工作的最后一次提交,我就可以看到是什么改变了返回当前提交并修复它。
我该怎么做?
答案 0 :(得分:5)
您应该尝试使用git bisect
。此功能允许您在提交中进行二进制搜索。当事情仍然很好时,你选择一个提交,当事情被破坏时你提交,然后从那里开始。
查看此页面以获取教程:
http://www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html
(搜索“一切都搞错了?”)
答案 1 :(得分:5)
Git为此提供了正确的命令:git bisect
。它将执行二进制搜索,并允许您标记每个经过测试的提交good
或bad
使用以下命令启动bisect程序:
git bisect start HEAD <last good commit>
然后构建你的源代码,运行它,检查错误,最后标记它:
git bisect good # or:
git bisect bad
如果您无法测试提交(构建损坏等),请使用git bisect skip
跳过它。
直到找到第一个错误的提交为止。要返回原始提交,请运行git bisect reset
。
答案 2 :(得分:2)
如果您只想返回一些提交测试,您可以执行:git checkout SHA