I'm doing a git bisect, and I've found a few good and bad commits so far, which I can confirm by running git bisect log
.
However, if I run git log for my branch git log --graph --decorate=full origin/master..mybranch
I can see it display that a certain commit is origin/mybranch and mybranch, and that another that I currently have checked out is (HEAD), but it doesn't display the commits that were "good" or "bad" with anything.
My git version is "git version 2.40.0.windows.1".
Here's a reproduction using a publicly available git repo.
git clone https://github.com/agrimm/zombie-chaser.git
cd zombie-chaser
git bisect start
git bisect bad d27ec73cf2f1df89cbccd41494f579e066bad6fe
git bisect good 3a99fd1ee5a20aa18e5202e9a8c3ee0ba04a740e
git log --graph --decorate=full master
* commit d27ec73cf2f1df89cbccd41494f579e066bad6fe (refs/remotes/origin/master, refs/remotes/origin/HEAD, refs/heads/master)
| Date: Mon Apr 12 23:24:20 2010 +1000
|
| Fixed typos, updated home page URL.
|
* commit ae1c1d263168cf123578ff5d50f4fc7eb9726a52 (HEAD)
| Date: Sun Apr 11 22:17:39 2010 +1000
|
| Bump up to version 0.1.0.
|
* commit 2a1e2a6c7d2b7036a36c291cc220cbc486815aa8
| Date: Sun Apr 11 19:19:27 2010 +1000
|
| Move library files and ui files into a lib subdirectory, and other changes to file loading.
|
* commit 3a99fd1ee5a20aa18e5202e9a8c3ee0ba04a740e
| Date: Sun Apr 11 12:28:10 2010 +1000
|
| Removed gosu as a dependency, to satisfy jruby.
Running of git bisect log:
$ git bisect log
git bisect start
# status: waiting for both good and bad commits
# bad: [d27ec73cf2f1df89cbccd41494f579e066bad6fe] Fixed typos, updated home page URL.
git bisect bad d27ec73cf2f1df89cbccd41494f579e066bad6fe
# status: waiting for good commit(s), bad commit known
# good: [3a99fd1ee5a20aa18e5202e9a8c3ee0ba04a740e] Removed gosu as a dependency, to satisfy jruby.
git bisect good 3a99fd1ee5a20aa18e5202e9a8c3ee0ba04a740e
What I expected: some text of "good" or "bad" after certain commits, what I actually got: nothing.
You need to include the bisect refs with either (simplest, shows all refs):
git log --decorate-refs=refs/ [other options]
Or (longer but more precise):
git log --graph --decorate=full --decorate-refs=refs/bisect \
--decorate-refs=refs/heads --decorate-refs=refs/tags \
--decorate-refs=refs/remotes --decorate-refs=refs/stash \
--decorate-refs=HEAD
Here I’ve listed refs/bisect
along with the default decorated refs so
that we don’t include more than we want. [1]
--decorate=full
means that refs are shown “in full”, in other words
the full ref path:
# with `--decorate=short`
master
# with `--decorate=full`
refs/heads/master
“Full” doesn’t mean “all kinds of refs” (that’s at least what I thought at first).
The command git log --graph --decorate=full origin/master..mybranch
doesn’t work because refs/bisect
is not decorated by default. I don’t
think man git-log
[2] is terribly direct about documenting what
the default refs are, but it is mentioned as a sort of appendix to one
of the switches:
If none of these options or config settings are given, then references are used as decoration if they match
HEAD
,refs/heads/
,refs/remotes/
,refs/stash/
, orrefs/tags/
.
log.excludeDecoration