按 Android versionName 搜索 git 提交

Searching git commits by Android versionName

我不确定我需要向 google 问什么问题。也许你能给我指出正确的方向。

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

最后一个运行正常的版本名称是 4.8.1.50,我第一次看到错误出现的版本是 4.8.1.60。

中间进行了多次 git 提交,影响了不同的文件,有些影响了 AndroidManifest,有些则没有。

你们知道我是否可以搜索和过滤所有这些提交吗?

提前致谢。

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

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

  1. 移动到一个肯定损坏的提交:git checkout <commit hash>
  2. 开始搜索过程:git bisect start
  3. 并说这个提交是 "bad": git bisect bad
  4. 标记一个肯定不包含问题的提交:git bisect good <commit hash>
  5. 然后重复使用 git bisect good 标记好的提交,每次 HEAD 将使用二进制移动到最后一个 badgood 之间的中间提交搜索。
  6. 当您发现问题时,使用 git bisect reset 将代码库 return 恢复到初始状态。

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