关于git:反向回到某些提交并测试什么问题?

reverse back to certain commit and test what the issue?

现在有没有一种方法可以保留我的所有更改,并且仍然将我的应用程序还原为某个提交,并开始执行所有其他提交,以查看哪个提交导致了我的应用程序中的问题?

我做了很多更改,检查所有内容需要很长时间,所以我希望获得以前的提交,当我发现问题时,我将返回到最近的提交,然后只应用必要的更改。

这里有一个答案:Git返回到特定的提交状态,但是我仍然想保留我最近的所有更改,有人能带我完成思考过程吗?

我在想,如果我现在提交我最近的更改,它在bitback中,然后使用方法:git reset --hard {commit numbers}并继续查看我的提交列表,当我发现问题时,git reset --hard {most recent commit}这会使我回到最新的状态吗?


有一个命令用于您想要执行的操作,它被称为git bisect,它使用二进制搜索来查找尚未工作的提交。过程是

git bisect start

git bisect bad

git bisect

这里有一个相当容易阅读的指南。

这将允许您查找导致该问题的提交。


提交所有未提交的更改,清除未跟踪文件的树,然后就可以

1
git checkout <some_commit_sha>

到那个特定的提交,然后git checkout master或其他分支返回。

如果必须的话,在处于"分离"状态时,不要提交任何内容—您可以在那里启动一个分支,然后像往常一样继续进行。