"Ghanshyam Thakkar" <shyamthakkar001@xxxxxxxxx> writes: > Yeah, my original motive was to support '@' as a shorthand for HEAD. > But, since '@' can also be used as branch name, I thought of comparing > object ids instead of string comparison in accordance with the > NEEDSWORK comment. However, as Junio pointed out, treating a branch > name revision that points to same commit as HEAD, as HEAD would just > cause confusion. FWIW, if we are not doing so in our documentation already, we may want to discourage use of "refs/heads/@", given that "@" is used as a synonym for "HEAD" in some[*] contexts, specifying the HEAD (i.e. "work on the branch that is currently checked out, or in the detached state") and specifying the concrete name of a branch (i.e. "work on this branch") mean totally different things and may result in (what may appear to the user as a) confusing behaviour. Granted, the user who names their branch "@" is only hurting themselves and it falls into the "Doctor, it hurts when I do this. Then don't do that!" category. But the documentation is where we tell them "Then don't do that!" and we should know better how it hurts when they do so than those who learn from the documentation, so ... [Footnote] * Even use of "@" as a synonym for "HEAD" may want to be discouraged, as there are still unnecessary differences between them that are not worth our engineering resource to fix. Do people know what "git checkout HEAD" and "git checkout @" do, for example?