git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Git pull doesn't get the tags

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 22, 2010, 22:25 UTC
Message-ID
<7vy69pkgpb.fsf@alter.siamese.dyndns.org>
In-Reply-To
<20101022142308.f275aefe.coolzone@it.dk>
Rico Secada <coolzone@it.dk> writes:
Show 13 quoted lines
> On Fri, 22 Oct 2010 11:04:32 +0200
> Mathias Lafeldt <misfire@debugon.org> wrote:
>
>> From git-pull's manpage:
>> 
>> -t
>> --tags
>>         Most of the tags are fetched automatically as branch
>>         heads are downloaded, but tags that do not point at
>>         objects reachable from the branch heads that are being
>>         tracked will not be fetched by this mechanism.  This
>>         flag lets all tags and their associated objects be
>>         downloaded. [...]

[jc: please do not top post, because people tend to read from top to bottom not the other way around]

Show 5 quoted lines
> I managed to overlook the info from the man page, sorry.
>
> But what does "but tags that do not point at objects reachable from the
> branch heads that are being tracked will not be fetched by this
> mechanism" mean?
The above passage in the manual page may be stated rather poorly.

When "git fetch" is run, unless told otherwise by an explicit --no-tags, it automatically fetches tags that point at new commits on branches you fetch. For example, I just tagged v1.7.3.2 last night, so if you fetch from me to get 'maint', 'master' or other integration branches of mine that includes 8a90438 (Git 1.7.3.2, 2010-10-21), "git fetch" would also copy v1.7.3.2 tag from me to your repository.

In the above example, 'maint', 'master', etc. are the branch heads that are being tracked (i.e. you will copy them to the refs/remotes/origin hierarchy in your repository) and v1.7.3.2 is a tag that does point at an object 8a90438 reachable from these branch heads. So you will get the tag without giving the --tags option from the command line.

If you were fetching only 'html' or 'man' branches from me, on the other hand, you would not have gotten v1.7.3.2 tag, as they are separate histories and that particular tag does not live in their ancestry.

Also tags that point at non-commits (e.g. in git.git, junio-gpg-pub and spearce-gpg-pub are pointing at blob objects, and v2.6.11 and v2.6.11-tree tags in the kernel repository are pointing at tree objects) will not be fetched automatically either. You would need to explicitly ask for them if you want them by either (1) find them via ls-remote and name them on the command line, or (2) use --tags option

Previous: Rico SecadaNext: Rico Secada
Message 4 of 7 in “Git pull doesn't get the tags”
  1. Rico SecadaOct 22, 2010
  2. Mathias LafeldtOct 22, 2010
  3. Rico SecadaOct 22, 2010
  4. Junio C HamanoOct 22, 2010
  5. Rico SecadaOct 23, 2010
  6. Junio C HamanoOct 22, 2010
  7. pull: Remove --tags option from manpageJens Lehmann, Nov 3, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.