使用较旧的git提交

使用较旧的git提交,git,Git,我在我的项目中有6个承诺。我想回到头^3,然后逐一尝试每个提交。我正在搜索将bug引入bead HEAD ^3的代码 我试过了 git签出头^3,但随后的所有更改都将丢失 我正在搜索将bug引入bead HEAD ^3的代码 您应该为此任务使用git对分 如果您知道问题从何处开始,则注释文件会有所帮助。 如果您不知道发生了什么问题,并且自您知道代码工作的上一个状态以来已经有几十个或数百个提交,那么您可能会求助于git bisect bisect命令在提交历史记录中执行二进制搜索,以帮助您尽快确定

我在我的项目中有6个承诺。我想回到头^3,然后逐一尝试每个提交。我正在搜索将bug引入bead HEAD ^3的代码

我试过了 git签出头^3,但随后的所有更改都将丢失

我正在搜索将bug引入bead HEAD ^3的代码

您应该为此任务使用git对分

如果您知道问题从何处开始,则注释文件会有所帮助。 如果您不知道发生了什么问题,并且自您知道代码工作的上一个状态以来已经有几十个或数百个提交,那么您可能会求助于git bisect

bisect命令在提交历史记录中执行二进制搜索,以帮助您尽快确定哪个提交引入了问题

假设您刚刚将代码发布到一个生产环境中,您会收到关于开发环境中没有发生的事情的错误报告,您无法想象代码为什么会这样做。你回到你的代码,结果发现你可以重现这个问题,但你无法找出哪里出了问题

您可以将代码对分以找出答案。首先运行git bisect start以使事情顺利进行,然后使用git bisect bad告诉系统当前的提交已中断。然后,您必须使用git bisect good[good_commit]告诉bisect最后一个已知的良好状态是什么时候

阅读[此处]关于如何操作的完整说明

下面是一个关于如何使用它的示例代码


您想使用git二分法,以后的更改丢失是什么意思?您已签出旧的提交。因此,在执行git日志时,后面的提交将不会在提交历史记录中可见。这是意料之中的。这并不意味着提交会丢失。提交仍然存在于git存储库的对象数据库中。在签出头^3之前,您仍然可以执行git签出或git签出以返回您所在的分支。之后,您将在git日志中再次看到整个历史记录。