I have a history that looks like this:
* 3830e61 Add data escaping. (Bad)
* 0f5e148 Improve function for getting page template.
* aaf8dc5 Merge br
Warning: the git bisect section regarding "Automatically bisect with temporary modifications" has been updated with Git 2.25 (Q1 2020).
(And git bisect --first-parent is available with Git 2.29+ -- Q4 2020)
It involves the step where you reapply the commit you are testing on top of your relevant master commit (which was ea3d736 in the OP's case)
The "git merge --no-commit" needs "--no-ff" if you do not want to move HEAD, which has been corrected in the manual page for "git bisect".
See commit 8dd327b (28 Oct 2019) by Mihail Atanassov (matana).
(Merged by Junio C Hamano -- gitster -- in commit fac9ab1, 01 Dec 2019)
Documentation/git-bisect.txt: add --no-ff to merge command
Signed-off-by: Mihail Atanassov
Reviewed-by: Jonathan NiederThe
hotfixapplication example usesgit merge --no-committo apply temporary changes to the working tree during a bisect operation.In some situations this can be a fast-forward and
mergewill apply the hotfix branch's commits regardless of--no-commit(as documented in the git merge manual).In the pathological case this will make a
[git bisect](https://git-scm.com/docs/git-bisect) runinvocation loop indefinitely between the first bisect step and the fast-forwarded post-mergeHEAD.Add
--no-ffto the merge command to avoid this issue.
git merge mentions indeed:
Note that fast-forward updates do not create a merge commit and therefore there is no way to stop those merges with
--no-commit.Thus, if you want to ensure your branch is not changed or updated by the
mergecommand, use--no-ffwith--no-commit.