Tags are refs that point to specific points in Git history. Tagging is generally used to capture a point in history that is used for a marked version release (i.e. v1.0.1). A tag is like a branch that doesn’t change. Unlike branches, tags, after being created, have no further history of commits.

For a bit more in-depth discussion see https://www.atlassian.com/git/tutorials/inspecting-a-repository/git-tag.