我不确定我需要向谷歌询问什么问题。也许您可以为我指明正确的方向。
我在我的应用程序中检测到一个错误,该错误开始发生在我的 AndroidManifest.xml 中的一系列 versionName 属性更改之间。
最后一个工作正常的版本名称是 4.8.1.50,我第一次看到错误出现的版本是 4.8.1.60。
许多 git commits 发生在这两者之间,影响不同的文件,一些影响 AndroidManifest,其他的则没有。
你们知道有什么方法可以搜索和过滤所有这些提交吗?
提前致谢。
最佳答案
您可以使用二进制搜索方法找到问题开始的确切提交。
正如@Richard 在评论中指出的那样,您可以使用 git bisect
命令。这是使用它的方法:
- 移动到一个肯定被破坏的提交:
git checkout <commit hash>
- 开始搜索过程:
git bisect start
- 并说这个提交是“坏的”:
git bisect bad
- 标记一个肯定不包含问题的提交:
git bisect good <commit hash>
- 然后使用
git bisect good
重复标记好的提交, 每次HEAD
将移动到最后一个bad
之间的中间提交和good
使用二进制搜索。 - 当您发现问题时,请使用
git bisect reset
将 repo 返回到初始状态。
因此,您可以在 log n
中找到导致错误的提交步骤,其中 n
是工作良好的提交和问题已经可重现的提交之间的初始提交数。
关于android - 通过 Android versionName 搜索 git 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50965908/