Did you know that Git allows users to tag specific points in a repository’s history? Tags act as road signs to point our areas of importance in the code. Usually, a tag is used to mark a release point (v1.0 etc.). Tags can be created and deleted and come in different forms.
If you are using any of Bitband’s Git-related apps (including our apps for GitHub, Git, GitLab, Bitbucket, and Beanstalk), you’ll still likely use tags.
Why Use Tags?
Think of Git tags like milestones or markers. They can help direct users or teams to a repo-s history that is significant in some way. They can be used, for example:
- To mark new versions
- To make stable releases
- To mark significant achievements
- Etc.
Without a way to tag, there would be no way for users to easily navigate to important points in a code’s history, which would be difficult as the code grew. Tagging, basically, makes it much easier to go back in time to reference specific events without having to comb through thousands of lines of code.
Lightweight vs Annotated Tags
Whether you’re in Jira (via our Git plugin), or right in Git, Git handles two types of tags: lightweight and annotated. While a lightweight tag is similar to a branch that doesn’t change (think of it as a pointer to a particular commit), an annotated tag is stored as a full object in the Git database. These tags contain information such as the tagger name, email, date and have a tagging message. They can also be signed and verified with a GNU Privacy Guard.
Creating an Annotated Tag
Start with a git tag command, and then add a “-a
” tag name “-m
” tag message to the git tag command:
git tag -a v1.0 -m “release version 4.0”
The -a
will specify that you are creating an annotated tag, and the -m
followed by the message will be stored in the Git database and available for viewing later.
Creating a Lightweight Tag
Lightweight tags don’t contain as much information as annotated tags. They’ll only contain the commit checksum. To create a lightweight tag, simply add an -lw
at the end:
git tag v1.0-lw
What Else Can I Do With Tags?
Aside from simply creating a tag, there are a few other things you can actually do with them that are quite helpful. For example, you can:
- Tag old commits
If you have an old commit, you still have the power to tag using the git tag commit. In order to perform this action, simply specify the commit’s checksum (or a portion of it) in the command line.
- View tag data
Run the git show <tag>
command to be able to view the data stored in any tag. The annotated tag will show the tag and commit data. However, a lightweight tag will only show the referred commit data.
- Push tags
While Git doesn’t push tags by default, you can successfully push a tag to a server using a git push origin command.
- Delete tags
Sometimes, you no longer need a tag. When this happens, tags can easily be deleted using the command, for example:
git tag --delete v1.2.45
Git Tags and Git Branches
Don’t get confused between tags and branches. While both offer a similar service (pointing to a specific commit), a tag is fixed. A tag will always, therefore, point to the same commit. Branches, however, will move the pointer forward with each additional commit. With branches, pointers can constantly be on the move.
Sometimes, teams might have multiple branches. Note that Git tags and branches do not have a direct relationship and that tags only identify a commit. That commit can be pointed to any number of branches. That’s why running a git show <tag> will not reference branches. It will only show the ID of the commit.
Conclusion
There are many great ways to use Git tags to help you create milestones throughout your work and to allow you to easily go back to certain points in time. By tagging significant events, you’ll make it much easier to find what you need, and, in the cased of annotated tagging, further information, that can help you make decisions regarding more current versions and tasks.
Do you want to make project management of Git and Jira easier? Integrate the two together for a seamless communication experience across both platforms! At Bitband, we have multiple Git-focused plugins for Jira users designed to help teams better manage their projects. Try our apps for GitHub, Git, GitLab, Bitbucket, Gitea, and Beanstalk – all of which allow for easy integration with Jira!
Want more Bitband insights? Check out: