我的项目中有6个提交。我想回到HEAD ^ 3,然后逐个尝试每个提交。我正在寻找将珠子HEAD ^ 3中的错误引入HEAD的代码。
我试过了
git checkout HEAD^3
但所有后来的更改都将丢失。
答案 0 :(得分:3)
我正在搜索将头部HEAD ^ 3中的错误引入HEAD的代码。
您应该使用git bisect
执行此任务。
如果您知道问题的起点,则注释文件会有所帮助 如果您不知道什么是破坏,并且自上次知道代码工作的状态以来已经有数十或数百次提交,您可能会转向git bisect寻求帮助。
bisect命令通过提交历史记录进行二进制搜索,以帮助您尽快识别哪个提交引入了问题。
假设您刚刚将代码发布到生产环境中,您将收到有关开发环境中未发生的错误的错误报告,您无法想象为什么代码会这样做。你回到你的代码,事实证明你可以重现这个问题,但你无法弄清楚出了什么问题。
您可以将代码一分为二。首先你运行git bisect start来开始工作,然后你使用git bisect bad来告诉系统你当前的提交被破坏了。那么,你必须告诉bisect什么时候最后一个已知的好状态,使用git bisect good [good_commit] ...
阅读[此处]有关如何操作的完整说明。
以下是有关如何使用它的示例代码