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
- Lightweight Tags: These are like static branches. A lightweight tag is simply a reference to a specific commit.
- 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>
Example:
git tag v1.0.0
- Create an Annotated Tag (Recommended):
git tag -a <tagname>
Example:
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"
Example:
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>
Example:
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.