反向回到某个提交并测试问题是什么?

时间:2015-12-10 16:32:49

标签: git github bitbucket commit git-commit

现在是否有办法保留我的所有更改,并仍然将我的应用撤回到某个提交并开始审核所有其他提交,以查看哪个提交在我的应用中出现问题?

我做了很多更改,我需要很长时间才能检查所有内容,所以我想获得之前的提交,当我发现问题时,我会恢复到最近的提交,然后只需应用必要的更改。

这里有这个答案:git revert back to certain commit但我仍然希望保留我最近的所有变化,有人可以引导我完成思考过程吗?

我想是否现在提交我最近的更改,它在bitbucket中,然后使用方法:git reset --hard {commit numbers}并继续浏览我的提交列表,当我发现问题时,{ {1}}这会让我回到最近的状态吗?

2 个答案:

答案 0 :(得分:4)

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

  

git bisect start

     

git bisect bad

     

git bisect <your last good commit here>

这是一个相当容易阅读的guide

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

答案 1 :(得分:2)

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

git checkout <some_commit_sha>

转到该特定提交,然后git checkout master(或其他分支)返回。

当你处于'分离'状态时,不要提交任何东西,如果你必须 - 你可以在那里开始分支并像往常一样继续