How to push Git tags

Kenny DuMez
Kenny DuMez
Graphite software engineer


Note

This guide explains this concept in vanilla Git. For Graphite documentation, see our CLI docs.


Git tags are used to mark specific points in a repository's history as important, typically for release versions. Once you create a tag in your local repository, you might need to push it to a remote repository to share it with other team members or to mark release points. This guide will explain how to push Git tags to a remote repository.

Before pushing tags, it's crucial to understand what a Git tag is. A Git tag points to a specific commit in the repository's history. Tags are often used to mark release versions (e.g., v1.0, v2.0). There are two types of tags in Git:

  • Lightweight tags: These are simple pointers to specific commits.
  • Annotated tags: These are stored as full objects in the Git database, which include the tagger name, email, date, and have a tagging message.

Before you can push a tag, you need to create one. Here’s how you can create an annotated tag:

Terminal
git tag -a v1.0 -m "Release version 1.0"

This command creates an annotated tag named v1.0 at the current commit with a message "Release version 1.0".

To push a specific tag to your remote repository, you use the git push command followed by the name of your remote (commonly origin) and the tag name. Here's how you can push a tag:

Terminal
git push origin v1.0

This command will push the tag named v1.0 to the remote named origin.

If you have multiple tags that need to be pushed to the remote repository, you can push all of them at once using the --tags option:

Terminal
git push origin --tags

This command will push all your local tags to the remote repository.

If you want to push several specific tags and not all, you can push them individually by repeating the push command for each tag:

Terminal
git push origin tag1
git push origin tag2

If you need to delete a tag from the remote repository, you must first delete it locally and then push the deletion:

Terminal
git tag -d v1.0
git push origin :refs/tags/v1.0

This removes the tag locally and then deletes the tag from the remote repository.

To work with the contents of a tag, you can check out to a specific tag like this:

Terminal
git checkout tags/v1.0

This command checks out the state of your repository at the point of the tag v1.0.

Pushing tags in Git is a straightforward process once you understand the basics of tag creation. Whether you’re pushing a single tag, multiple tags, or managing tags between local and remote repositories, the commands discussed here provide a solid foundation. Using tags effectively can help you and your team keep track of important milestones like releases within your project’s lifecycle.

For more information on Git tags, see the official Git documentation.

Git inspired
Graphite's CLI and VS Code extension make working with Git effortless.
Learn more

Graphite
Git stacked on GitHub

Stacked pull requests are easier to read, easier to write, and easier to manage.
Teams that stack ship better software, faster.

Or install our CLI.
Product Screenshot 1
Product Screenshot 2