GIT pull/fetch from specific tag

40,752

Solution 1

It will be a bit different with ClearCase, because you can only rebase a baseline produced on the parent Stream (although you can deliver any baseline from any Stream to your Stream).
So there are some limitations to the kind of merge you do with ClearCase.

With Git, you can merge any commit to the HEAD of your current branch.
If that commit comes from a remote repo, it will be first imported in the remote branches of your local repo ('fetch' part of the git pull) and then merged.

 git pull [options] [<repository> [<refspec>…]]

The "refspec" part of the git pull command means you can pull anything.

<refspec> can name an arbitrary remote ref (for example, the name of a tag) or even a collection of refs with corresponding remote tracking branches (e.g., refs/heads/:refs/remotes/origin/), but usually it is the name of a branch in the remote repository.

See also How to pull remote branch with specified commit id?

Solution 2

Pull is fetch, then merge or rebase.

Talking about how to fetch a specific remote ref (either a tag or branch), probably an example is better at clarifying this:

git fetch origin :refs/remotes/origin/master

Or a shorter form:

git fetch origin :remotes/origin/master

Note this works even if remotes/origin/master has been removed locally.

Another example for creating a local branch directly from a remote tag

git fetch <repo_url> +refs/tags/<TAG>:<branch>
Share:
40,752
Senthil A Kumar
Author by

Senthil A Kumar

SCM Engineer

Updated on January 21, 2022

Comments

  • Senthil A Kumar
    Senthil A Kumar over 2 years

    Is there a way to pull/fetch code from a specific tag in a repo.

    Am aware that after clone, i can checkout to the tag but is it possible to specify a tag during a pull?

    In ClearCase i can rebase or deliver a specific baseline of code, is there a way where i can use git tags similarly to pull/push code upto a specified tag?