我想回到之前的提交并运行我的程序,直到我发现哪里出了问题,而不会删除或影响我的提交。一旦我找到它工作的最后一个提交,我可以看到是什么改变了返回到当前提交并修复它。
我该怎么做?
您应该尝试使用git bisect
. 此功能允许您基本上通过提交进行二进制搜索。你在事情还不错的时候选择一个提交,在事情坏了的时候选择一个提交,然后从那里继续。
查看此页面以获取教程:
http://www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html
(搜索“哪里出了问题?”)
Git 为此提供了正确的命令:git bisect
. 它将执行二进制搜索,并允许您标记每个测试的提交,good
或者bad
使用以下命令开始对分过程:
git bisect start HEAD <last good commit>
然后构建你的源代码,运行它,检查错误,最后标记它:
git bisect good # or:
git bisect bad
如果您无法测试提交(构建损坏等),请使用git bisect skip
.
这样做直到你找到第一个错误的提交。要返回原始提交,请运行git bisect reset
.
如果您只想返回一些提交进行测试,您可以执行以下操作:git checkout SHA