How to Create a Tag in a GitHub Repository: A Step-by-Step Guide

Tags in Git are pointers to specific points in a repository's history, typically used for marking release points (v1.0, v2.0, etc.). Git supports two types of tags: lightweight and annotated. Understanding how to create and manage these tags is essential for effective version control and release management in GitHub repositories.

Understanding Tag Types

  1. Lightweight Tags: These are like static branches. A lightweight tag is simply a reference to a specific commit.
  2. Annotated Tags: These are stored as full objects in the Git database. They include metadata such as the tagger’s name, email, date, and a tagging message. Annotated tags are recommended for most use cases because they contain more information.

Creating Tags

  • Create a Lightweight Tag:
git tag <tagname>


git tag v1.0.0
  • Create an Annotated Tag (Recommended):
git tag -a <tagname>


git tag -a v1.0.0

To add a message to your tag, which is highly recommended for annotated tags, use:

git tag -a <tagname> -m "tag description"


git tag -a v1.0.0 -m "First release"

Pushing Tags to Your Remote Repository

By default, tags are not automatically pushed to your remote repository. You need to explicitly push them.

  • Push All Local Tags:
git push origin --tags
  • Push a Single Tag:
git push origin <tagname>


git push origin v1.0.0

Listing All Tags

To view all the tags you have created in your repository, simply use:

git tag

This command lists all the tags in alphabetical order.

Subscribe to GIT.WTF!?!

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
[email protected]