How to Clone Specific Tag in Git
- Understanding Git Tags
- Cloning a Repository with All Tags
- Cloning a Specific Tag
- Checking Out a Tag After Cloning
- Conclusion
- FAQ

Cloning a specific tag from a remote Git repository is a common task for developers who want to work with a particular version of a project. Tags are used in Git to mark specific points in history, often representing a release or a significant change. By cloning a specific tag, you can ensure that you are working with the exact codebase that corresponds to that release.
In this article, we will walk you through the steps to clone a specific tag from a remote repository using Git commands. Whether you are a beginner or an experienced developer, these instructions will help you streamline your workflow and maintain version control effectively.
Understanding Git Tags
Before diving into how to clone a specific tag, it’s essential to understand what Git tags are and why they are useful. Tags in Git are references to specific commits, typically used to denote release versions or milestones in a project. Unlike branches, tags are immutable and serve as bookmarks in the project’s history. This makes them invaluable for developers who need to reference a stable version of the code without worrying about ongoing changes in the main branch.
Cloning a Repository with All Tags
To begin with, if you want to clone a repository and have access to all its tags, you can use the following command:
git clone <repository-url>
Output:
Cloning into 'repository-name'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/Y), done.
remote: Compressing objects: 100% (X/Y), done.
Receiving objects: 100% (X/Y), done.
Resolving deltas: 100% (X/Y), done.
This command will clone the entire repository, including all branches and tags. After cloning, you can list all available tags by navigating into the repository directory and using:
git tag
Output:
v1.0
v1.1
v2.0
While this method gives you access to all tags, it may not be the most efficient if you only need a specific tag.
Cloning a Specific Tag
If you are looking to clone only a specific tag from a remote repository, you can do so by following these steps. First, you need to create a shallow clone of the repository with a single branch and then check out the desired tag.
- Create a shallow clone of the repository:
git clone --branch <tag-name> --single-branch <repository-url>
Output:
Cloning into 'repository-name'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/Y), done.
remote: Compressing objects: 100% (X/Y), done.
Receiving objects: 100% (X/Y), done.
Resolving deltas: 100% (X/Y), done.
- Navigate into the cloned directory:
cd repository-name
- Verify that you are on the correct tag:
git describe --tags
Output:
<tag-name>
By using this method, you only download the history related to that specific tag, which can save time and bandwidth, especially for large repositories.
Checking Out a Tag After Cloning
If you’ve already cloned a repository and later decide you want to check out a specific tag, you can do so easily. First, navigate to your repository directory and fetch all tags:
git fetch --tags
Output:
From <repository-url>
* [new tag] v1.0 -> v1.0
* [new tag] v1.1 -> v1.1
* [new tag] v2.0 -> v2.0
Next, check out the desired tag:
git checkout <tag-name>
Output:
Note: checking out '<tag-name>'.
You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.
This command will put you in a detached HEAD state, meaning you are not on a branch but at a specific commit. You can explore the code at this tag, but if you make changes, they won’t belong to any branch unless you create one.
Conclusion
In this guide, we’ve explored how to clone a specific tag from a remote Git repository. Whether you are creating a shallow clone or checking out a tag after cloning, these methods will help you manage your code versions effectively. Understanding how to work with tags is crucial for maintaining project integrity and ensuring that you are working with the correct codebase. As you grow in your Git proficiency, mastering these techniques will enhance your development workflow and improve collaboration with your team.
FAQ
-
What is a Git tag?
A Git tag is a reference to a specific commit in the Git history, often used to mark release points. -
Can I clone a repository without all its history?
Yes, you can create a shallow clone using the –depth option to limit the history you download. -
What happens if I make changes while in a detached HEAD state?
Changes made in a detached HEAD state are not associated with any branch and can be lost unless you create a new branch. -
How do I delete a tag in Git?
You can delete a tag using the command git tag -dfor local tags and git push –delete origin for remote tags. -
Is it possible to create a tag after cloning a repository?
Yes, you can create a tag at any commit using git tagand then push it to the remote repository.
Related Article - Git Clone
- Difference Between Forking and Cloning on GitHub
- Difference Between Git Checkout and Git Clone
- How to Clone a Git Repository With a Specific Revision
- How to Clone a Private Repository in Git
- How to Clone Subdirectory of Git Repository
- How to Clone Into a Non-Empty Git Directory