3

我想回到之前的提交并运行我的程序,直到我发现哪里出了问题,而不会删除或影响我的提交。一旦我找到它工作的最后一个提交,我可以看到是什么改变了返回到当前提交并修复它。

我该怎么做?

4

3 回答 3

6

您应该尝试使用git bisect. 此功能允许您基本上通过提交进行二进制搜索。你在事情还不错的时候选择一个提交,在事情坏了的时候选择一个提交,然后从那里继续。

查看此页面以获取教程:

http://www-cs-students.stanford.edu/~blynn/gitmagic/ch05.html

(搜索“哪里出了问题?”)

于 2012-07-09T06:12:04.823 回答
6

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.

于 2012-07-09T06:12:38.223 回答
2

如果您只想返回一些提交进行测试,您可以执行以下操作:git checkout SHA

于 2012-07-09T11:01:04.553 回答