It’s a common DevOps practice to tag a specific commit id whenever there is a release. Also, developers tag specific commits for several uses cases.
When it comes to the application release process, whenever there is a hotfix, the fix starts from the commit id
that was tagged for release.
In this blog, you will learn the follwing.
- Checkout a particular git tag
- git clone from a tag
- merge a git tag to a branch
Checkout Git Tag
Let’s look at different options associated with checking out a git tag.
Checkout a Git Tag To Branch
Now that you know the list of available tags, you can check out a particular tag.
For example, if you want to checkout a tag v.1.0
to a branch named hotfix-1.0
, you can do so using the following git command.
git checkout tags/v.1.0 -b hotfix-1.0
List Git Tags
When you clone a repository, all the tags associated with the repository will be pulled down.
To fetch all the remote tags, use the fetch command as shown below.
git fetch --tags
You can list down all the tags from the git repository using the following command.
git tag -l
You can also search for tags with patterns.
git tag -l "v*"
To get the latest git tag, you can use the following command.
git describe --tags $(git rev-list --tags --max-count=1)
Get Git Tag Information
If you get the commit id and other information associated with a tag using the following command.
git show v.1.0
Clone from a git tag
Cloning a specific git tag is very useful for debugging and other purposes.
To clone a particular tag, you can use the clone command as shown below.
git clone -b <git-tagname> <repository-url>
For example,
git clone -b v.1.0
When you clone a tag, it will be in the detached HEAD state.
If you need to checkout to a new branch if you want to make changes to the tag as explained above.
Merge a git tag to a branch
Following command merges a particular tag to the current branch.
git merge tag_name
Let’s say you want to merge the latest tag to the current branch, you can use the following command.
git merge $(git describe --tags $(git rev-list --tags --max-count=1))
If it a local branch, you can push the changes to the upstream branch.
Conclusion
Git tagging is very important when it comes to CI/CD pipeline.
Make sure you follow the right set of practices in git tagging and creating branches from git tags.