通过Android版本搜索git commits

时间:2018-06-21 10:09:36

标签: android git version-control git-commit

我不确定我需要向Google问什么问题。也许您可以指出正确的方向。

我在我的应用中检测到一个错误,该错误开始发生在AndroidManifest.xml中的一系列versionName属性更改之间。

最后一个可以正常工作的versionName是4.8.1.50,我第一次看到该错误出现的那个是4.8.1.60。

在它们之间进行了许多git提交,影响了不同的文件,有的影响了AndroidManifest,有的则没有。

你们知道我是否可以通过任何方式搜索和过滤所有这些提交?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以使用二进制搜索方法来查找问题开始的确切提交。

正如@Richard在评论中指出的那样,您可以使用git bisect命令。这是使用它的方法:

  1. 移至肯定已损坏的提交:git checkout <commit hash>
  2. 开始搜索过程:git bisect start
  3. 并说此提交是“错误的”:git bisect bad
  4. 确定要进行的提交不包含问题的提交:git bisect good <commit hash>
  5. 然后重复使用git bisect good标记好的提交,每次使用二进制搜索将HEAD移到最后一个badgood之间的提交中。
  6. 找到问题后,使用git bisect reset将存储库恢复为初始状态。

因此,您可以在log n步骤中找到导致错误的提交,其中n是工作良好的问题与已经可以再现问题的提交之间的初始提交次数。