在二等分之前将工作树更改为特定提交的最佳方法是什么?

Fre*_*abe 2 git git-bisect

我开始git bisect会话时的常用工作流程是:

git bisect start          # start a bisect session
git bisect bad            # I noticed that the current state is broken
Run Code Online (Sandbox Code Playgroud)

现在,我经常知道过去的事情是有效的,但我不知道哪个版本是好的,所以我通常想把我的工作树恢复到较旧的状态,构建,测试,重复直到我找到一个工作版本我可以用git bisect good.

什么是"将我的工作树恢复到较旧状态"步骤的最佳方法?git reset --hard <some_good_rev>git checkout <some_good_rev>?别的什么?请证明你的答案.

Way*_*rad 8

我通常不知道好转的位置,所以我必须找到它.猜猜回来可能有多好.比方说,32转.从分支的尖端开始,并使用干净的工作目录:

$ git checkout HEAD~32
Run Code Online (Sandbox Code Playgroud)

运行测试.如果它是一个好转,开始平分.如果不是,请再回过头来看看:

$ git checkout HEAD~32
Run Code Online (Sandbox Code Playgroud)

冲洗,起泡,重复.

为什么"git checkout?" 因为"git reset"会改变分支指向哪个提交作为其"提示",但git checkout不会.