My notes on using tag feature of Git.

We can use git-tag to create a memorable name for a specific commit, for example, v1.0, v2.0.

Create tags

Lightweight and annotated tags

There are two different types of tag: lightweight and annotated tag.

To create lightweight tags, do not use -a option:

git tag v0.5

To create annotated tags, use -a option and -m (for tag message):

git tag -a v0.5  -m "some info about this commit"

For annotated tags, when we use git show {tag-name}, the tag message will also be displayed.

Tag a specific commit

To tag a specific commit, we can provide its commit hash:

# in this example, 8a5cbc4 is the commit hash.
git tag -a v1.2 8a5cbc4 -m "some information related to this tag"

List tags

To list tags, use git tag -l or just git tag.

Git-tag also supports globing for tags matching a pattern. For example, to list all tags in version 1.1 series, use git tag -l "v1.1.*".

Show a tag

To show a tag, use git show {tag_name}, for example, git show v1.0.

Push tags to remote

To push a tag to remote repo, we have to explicitly push it. git push origin {branch-name} does not work in this case.

# this will push tag v1.2 to origin
git push oirgin v1.2

To push all tags to remote, use command git push origin --tags.

Delete a tag

To delete a tag, use git tag -d {tag-name}, for example, to delete tag v1.2, we use git tag -d v1.2.

To delete a tag in remote repo, use git push {remote-name} -d {tag-name}.

References