Tags
A name that does not move.
A branch moves as you commit. A tag does not. That is the entire difference, and it is why tags are used for releases: v1.0 should mean one commit forever.
Because a tag is just another ref, it resolves anywhere a branch would — git show v1.0, git diff v1.0..HEAD, git checkout v1.0.
A tag also outranks a branch of the same name when git resolves a bare word, which is a good reason not to have both.
Commands in this lesson
git tag- Give a commit a name that will not move