2016-08-24 51 views
0

我在本地计算机上工作,重构了一些东西(提交A,B,C,D),我总是确保输出文件没有改变。合并后(提交I),我发现输出文件已更改。如何找到哪些提交包含bug

我怎样才能找到究竟提交(E,F,G,H)是改变的原因?

A->B->C->D -I 

\E->F->G->H/ 

谢谢!

+0

'git log --name-only'的输出应该显示已更改文件的名称。 –

回答

3

你在git bisect之后。你给它一个很好的修改,然后检查它们之间的中间,等待你告诉它这个提交是好还是坏(例如因为它没有在那个提交中编译),然后检查剩下的一半的下一个中间。这种二进制搜索算法将非常快速地为您提供更改输出的提交。

另外,如果你可以自动判断是否改变了脚本的输出文件的过程中,你可以给该脚本来git bisect,它会自动运行的脚本来确定好是坏,还是不明所以,你可以等待结果。

+0

这似乎矫枉过正。为什么不分析'git log'的输出? –

+0

@OliverCharlesworth,因为他说提交太大而不能看起来有用,他不知道哪些文件发生了变化,但只是输出发生了变化。也有可能超过4个提交和以上只是一个例子。 Bisect正是他要求的正确工具。 :-) – Vampire

+0

嗯,我可能误解了“输出文件已更改” - 最初假定他的意思是某些源代码控制的文件已更改。当然,他很可能是指某些测试的结果,在这种情况下,你是完全正确的。 –

相关问题