Kaartic Sivaraam <kaartic.sivaraam@xxxxxxxxx> writes: >> Stepping back a bit, the mild suspicion above says >> >> $ git checkout HEAD^0 >> ... do things ... >> $ git checkout -b temp >> ... do more things ... >> $ git checkout -B @{-1} >> >> that creates a new branch whose name is 40-hex of a commit that >> happens to be where we started the whole dance *is* a bug. No sane >> user expects that to happen, and the last step "checkout -B @{-1}" >> should result in an error instead [*1*]. >> >> I was wondering if "git check-ref-format --branch @{-1}", when used >> in place of "checkout -B @{-1}" in the above sequence, > > I guess you mean '... "git checkout -B $(git check-ref-format --branch > @{-1}", when used in place of "git checkout -B @{-1}" ...' ? No you guessed wrong. I was (and am) wondering if the last step in the following sequence should fail. >> $ git checkout HEAD^0 >> ... do things ... >> $ git checkout -b temp >> ... do more things ... >> $ git check-ref-format --branch @{-1} And I am leaning towards saying that it is a bug that it does not fail; @{-1} is a detached HEAD and not a concrete branch name in this case, so "check-ref-format --branch" should at least notice and say that it is a request that may lead to a nonsense next step (which is to create a branch with that 40-hex name).