I know that, in Git parlance, "detached HEAD" corresponds to a state in which the symbolic reference HEAD is not pointing to any branch. I also know that git branch, for instance, will tell me whether I'm in detached-HEAD state, e.g.
* (detached from 9a2ef02)
master
or not, e.g.
* master
However, I'd like to know if there is a way to make the output of git log --decorate completely unambiguous as to whether I'm in detached-HEAD state or not.
Example
Say I'm on master and my history looks as follows:
4d860e9 (HEAD, master) Remove trailing whitespace
9a2ef02 Correct typo in header
f0badb5 Add to-do section to README
Case 1: unambiguous detached-HEAD state
If I run
git checkout 9a2ef02
then the output of git log --decorate --oneline is
9a2ef02 (HEAD) Correct typo in header
f0badb5 Add to-do section to README
Because no branch reference is listed next to HEAD in this output, I know for sure that I've got a detached HEAD.
Case 2: detached-HEAD state or not?
However, if I run
git checkout 4d860e9
then HEAD does not point to master, but directly to commit 4d860e9, which master also points to; I've got a detached HEAD. However, there is no way to tell from the output of git log --decorate --oneline,
4d860e9 (HEAD, master) Remove trailing whitespace
9a2ef02 Correct typo in header
f0badb5 Add to-do section to README
because it's exactly the same as when I'm on master.
Is there a way, via some git log options, to remove that ambiguity? I haven't found a way in the git-log man page...