当某个功能中断时,如何搜索旧git提交
在追踪某个功能崩溃的时间时,我发现了过去的一个commit waaay,该功能仍然可以工作。现在,我想以增量方式签出更新的提交,以查看功能何时中断,而不必通过散列来标识它们,而是相对于我标识的散列(该功能仍在工作) 有没有办法做到这一点:当某个功能中断时,如何搜索旧git提交,git,git-checkout,Git,Git Checkout,在追踪某个功能崩溃的时间时,我发现了过去的一个commit waaay,该功能仍然可以工作。现在,我想以增量方式签出更新的提交,以查看功能何时中断,而不必通过散列来标识它们,而是相对于我标识的散列(该功能仍在工作) 有没有办法做到这一点: git checkout "COMMITHASH + X COMMITS NEWER (closer to master)" 或者在签出提交后: git checkout "X COMMITS NEWER (closer to master)" 这个问题的
git checkout "COMMITHASH + X COMMITS NEWER (closer to master)"
或者在签出提交后:
git checkout "X COMMITS NEWER (closer to master)"
这个问题的其他解决方案也很受欢迎,但我仍然想知道是否有类似于上面伪语句的语法,类似于
HASH~1
,但方向相反。正是对于这个用例,git对分特性使用了二进制搜索
看
按如下方式使用:
git对分开始
开始对分git对分坏
将头部标记为坏git bisect good HASH
将提交HASH
标记为最后一次已知的良好提交(也可以是git引用),例如以前的版本然后,在最后一个已知的好提交和最后一个已知的错误提交之间的中间检测。在这里做测试
根据您的结果,发出git bisect good
或git bisect bad
,git将继续执行,直到找到错误提交
停止对分问题git bisect reset
(如果您有子模块,您可能需要在每个步骤后更新它们)。阅读git bisect的帮助,作为您方法的替代方法。它可以让你通过二进制搜索从一个已知的传递提交到一个已知的失败提交来发现一个bug。这是我问题的正确答案。不过,我仍然想知道是否可以像我在问题中所问的那样指定提交偏移量。请参阅作为所有可能的git修订的参考。没有新的X语句。-也许您可以先在头部创建一个分支,然后使用git checkout branch~X,然后减少X。git没有“向上”的引用(只有向下,即回到历史中)。