Ron Garret <ron1@xxxxxxxxxxx> writes: >> When HEAD points at a branch, making a commit advances _that_ branch. And >> we say you are "on that branch". When HEAD is detached, because it is not >> attached to anything, it advances no branch. "detached HEAD" is detached >> in the very real sense. It is not attached to _any_ branch. > > OK. The docs do not make that clear at all. In fact, the following > statement, copied straight from the manual, flatly contradicts what you > just said: There are many places in the documentation that simply predate the introduction of detached HEAD. The description talks as if you cannot be in any state other than on a particular branch. For example, "git pull" talks about choosing where to fetch from and what to merge to the head based on what your current branch is---obviously such a description is ancient and doesn't talk about what should happen when you do not simply have any "current" branch. So it is understandable that you get confused and it is all documentation's fault, not yours. > "The special symbol "HEAD" can always be used to refer to the current > branch." > > Always. Except when it can't. Exactly. We would need to update the documentation. While doing so, a general guideline would be to keep in mind that they were written back when you had to always be on _a_ branch (and they called it "current branch", "branch HEAD points at", etc.). When they describe that "the current branch is updated in such and such way", what happens in a detached HEAD state is that only the HEAD pointer that directly points at the "currently checked out commit" is updated, without affecting _any_ branch. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html