0

When I git checkout to a Git tag, the HEAD is referring to a branch where I created the tag.

Is this normal?

Or where am I doing wrong?

Any explanation will be appreciated. Thanks

Qwerty
  • 207
  • 1
  • 4
  • 10
  • 1
    A tag refers to a commit. A branch refers to a commit. Whether you checkout a tag or a branch, the effect is to set HEAD to the commit referred to by the tag or branch. – William Pursell Nov 10 '18 at 08:54
  • Related: https://stackoverflow.com/questions/34987957/how-did-i-end-up-with-a-detached-head/34994175#34994175 – jub0bs Nov 10 '18 at 08:58

1 Answers1

-2

When I git checkout to a Git tag, the HEAD is referring to a branch where I created the tag. Is this normal?

Yep

Whenever you use the git checkout git change the HEAD of your repository. The HEAD simply references to commit.

If your commit is not the latest in the current branch you will be in detached HEAD.

Read here more about Detached HEAD: How to move HEAD back to a previous location? (Detached head)


Git stores your commit in a list like a sequence. Meaning that each commit is pointing to the previous commit stored inside the parent attribute of the commit. When you check out tag it's usually an "old" commit from the past. This results in a detached HEAD.


... the HEAD is referring to a branch where I created the tag

Whenever you checkout git tags it is not pointing to the branch where the tag was created since the tag can be in several branches if you merged that branch to others.

Git is in a detached HEAD state and you are not on any branch but in detached HEAD

CodeWizard
  • 128,036
  • 21
  • 144
  • 167
  • 1
    Checking out a tag leaves you *always* in detached state. It not important whether a branch point to the same commit or not. – A.H. Nov 11 '18 at 19:49