Saturday, December 28, 2024
Google search engine
HomeGuest BlogsGit Tag Commit Guide

Git Tag Commit Guide

Introduction

Git tags serve as reference points in a project’s development history. Use tags to mark a program release version, bug fix, patch, but also a specific commit. By tagging a particular commit, it is easy to revisit that certain point in development later and continue the development from there.

In this tutorial, you will learn to create a Git tag for a specific commit.

Learn to create a Git tag for a specific commit.Learn to create a Git tag for a specific commit.

Prerequisites

Create a Git Tag for a Commit

Follow the steps below to create a tag for a specific commit:

1. Track Files

After making changes to existing files or adding new ones to the repository, add all files to the staging environment by running:

git add .

2. Create Commit.

Create a commit using the git commit command. The syntax is:

git commit -m "Notes about the commit"

For example:

Creating a new commit in Git.Creating a new commit in Git.

3. Create Tag

Create a tag for the last commit by specifying the HEAD in the git tag command. Referencing the HEAD enables users to create a tag for the latest commit without specifying the commit’s exact SHA hash.

Lightweight tags are suitable for internal use, while annotated tags are used for public releases as they contain additional metadata.

The syntax to create an annotated tag for the last commit is:

git tag -a [tag_name] HEAD -m "Tag message"

For example:

git tag v2.5 HEAD -m "Version 2.5 released"

Running the git log --oneline command shows that the v2.5 tag was created for the latest commit:

Creating a tag for the latest commit on HEAD.Creating a tag for the latest commit on HEAD.

4. Sync Changes with Remote

Use the following syntax to push the new tag to the remote repository:

git push [remote_name] [tag_name]

For example:

Pushing a Git tag to a remote repository.Pushing a Git tag to a remote repository.

The command pushes the v2.5 tag to the origin remote repository. Alternatively, export all local tags to the remote repository by running:

git push origin --tags

Create a Git Tag for an Old Commit

Create a Git tag for an earlier commit in Git history by specifying the commit’s SHA hash. Follow the steps below to create a tag with the current date or matching the commit date.

Create Tag With Current Date

1. Obtain Commit SHA

Use the --oneline flag with git log to obtain the commit SHA value:

git log --oneline

The --oneline flag outputs the repository log with a short SHA code for each commit:

Obtaining the SHA hashes for Git commits.Obtaining the SHA hashes for Git commits.

Copy the SHA value for the commit you want to create the tag for.

2. Create a Tag

Use the following syntax to create an annotated tag:

git tag -a [tag_name] [commit_SHA] -m "Notes about the tag"

For example:

git tag -a v1.7 7f122d3 -m "Hotfix released"

The command creates a tag named v1.7 for the specified commit. Rerun git log --oneline to check:

Checking to see if the tag was created.Checking to see if the tag was created.

Although the tag is created for an old commit, the command creates tags with the current date and shows that value on a GitHub releases page.

Create Tag Matching Commit Date

Follow the steps below to create a tag dated the same as the commit date:

1. Obtain Commit SHA

Obtain the commit SHA by running:

git log --oneline

2. Checkout to Old Commit

Set the HEAD to the old commit. Use the following syntax:

git checkout [commit_SHA]

For example:

Switching the head to a specific commit.Switching the head to a specific commit.

The command switches the HEAD to the specified commit, resulting in a detached HEAD state. This state occurs because it is in the middle of the commit history and making changes can disturb the Git blockchain. The same happens when cloning a Git tag or when you checkout a Git tag.

3. Change the Date and Add Tag

Temporarily set the date to match the HEAD commit date:

GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \

Create the tag using the following syntax:

git tag -a [tag_name] -m "Tag notes"
Creating a tag with an old date.Creating a tag with an old date.

4. Export Changes

Push the changes to the remote repository. The syntax is:

git push [remote_name] --tags

For example:

Pushing all git tags to a remote repository.Pushing all git tags to a remote repository.

5. Switch HEAD Back to Master

Switch back to the master branch or any other branch using the git checkout command. To switch back to master, run:

git checkout master
Switching HEAD to master in Git.Switching HEAD to master in Git.

Conclusion

This tutorial showed how to create a Git tag for the latest commit and for a specific commit in Git project development history. The guide also shows how to set the tag creation date to match the commit date.

For more Git tutorials, see how to clone a Git tag, delete a Git tag, or rename a tag in Git.

Was this article helpful?
YesNo

Previous article
Next article
RELATED ARTICLES

Most Popular

Recent Comments