Blog

Git Tagging

by -

tags:git

If you’re new to Git or want to know a little more about its basics and its distributed model, do not hesitate to read the Introduction to Git article.

Tagging is another great feature Git provides. A tag acts as a pointer to an specific commit, easing its identification. Usually it’s used to mark release points on codebases (e.g. v0.1.0, v1.0, etc).

Do not type the $ sign you see in the command examples. That’s just an indicator that you should run the command that follows it in your command line tool.

Lightweight and Annotated Tags

Git provides two types of tags: lightweight and annotated. “A lightweight tag is very much like a branch that doesn’t change — it’s just a pointer to a specific commit.” (Chacon 39)

To create a lightweight tag you run:

$ git tag tag-name

After that you can go to an specific tag by running:

$ git checkout tag-name

That’s much easier than checking out an specific commit by its hash ID right?

But usually it’s recommended that you create annotated tags. Annotated tags contain the tagger’s name and email, the date and a message, and they can be signed and verified with GNU Privacy Guard (GPG).

To create an annotated tag you run:

$ git tag -a tag-name -m "tag message"

Listing Your Tags

To list all your tags you run:

$ git tag

And to see more information about any specific (annotated) tag:

$ git show tag-name

Sending Your Tags to Your Remote Repository

By default, the push command doesn’t send tags to remote repositories. To send them you do the same thing as with branches:

$ git push remote-name tag-name

If you have several tags and want to send them at once:

$ git push remote-name --tags

Conclusion

That’s it. Git makes it super easy and fast to tag your codebase. Tagging is a best-practice on not trivial projects, as it makes it very simple to find release points on your codebase. Every time you’re going to make a release, deploying code to a server, consider tagging your codebase before doing so.

Git Branching and Merging
Git Remote and Tracking Branches
Git Basic Commands Explained
Git Workflow
Introduction to Git

Git
Pro Git Book

Bibliography

Chacon, Scott. Pro Git. Apress, 2009.

comments powered by Disqus