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

Cloning a remote tag without using git-fetch-pack directly?

From
Josh Triplett <josh@joshtriplett.org>
Date
Apr 19, 2011, 22:20 UTC
Message-ID
<20110419222050.GA3304@feather>
Using fetch-pack, I can clone a single tag from a repository:

/tmp/testrepo$ git init Initialized empty Git repository in /tmp/testrepo/.git/ /tmp/testrepo$ git fetch-pack /home/josh/src/linux-2.6/.git refs/tags/v2.6.12 remote: Counting objects: 31617, done. remote: Compressing objects: 100% (21083/21083), done. Receiving objects: 100% (31617/31617), 52.56 MiB | 5.27 MiB/s, done. remote: Total 31617 (delta 12862), reused 19495 (delta 10331) Resolving deltas: 100% (12862/12862), done. keep c80bd1def293bc11591159c96970d8becfe3b2d9 26791a8bcf0e6d33f43aef7682bdb555236d56de refs/tags/v2.6.12 /tmp/testrepo$ git show 26791a8bcf0e6d33f43aef7682bdb555236d56de | head -20 tag v2.6.12

This is the final 2.6.12 release
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBCsykyF3YsRnbiHLsRAvPNAJ482tCZwuxp/bJRz7Q98MHlN83TpACdHr37 o6X/3T+vm8K3bf3driRr34c= =sBHn -----END PGP SIGNATURE-----

commit 9ee1c939d1cb936b1f98e8d81aeffab57bae46ab
Author: Linus Torvalds <torvalds@ppc970.osdl.org>
Date:   Fri Jun 17 12:48:29 2005 -0700
    Linux 2.6.12
diff --git a/Makefile b/Makefile
index 9e005e1..0d1e74d 100644
--- a/Makefile



However, I can't seem to find any way to convince git clone to do the
same thing for me.  git clone will clone a branch, but not a tag.

/tmp/testrepo$ git clone /home/josh/src/linux-2.6/.git -b refs/tags/v2.6.12
Cloning into linux-2.6...
done.
warning: Remote branch refs/tags/v2.6.12 not found in upstream origin, using HEAD instead


On a different note, git fetch-pack seems to silently fail if asked to
fetch a remote tag which points at a tree object rather than a commit
object:

/tmp/testrepo$ git init
Initialized empty Git repository in /tmp/testrepo/.git/
/tmp/testrepo$ git fetch-pack /home/josh/src/linux-2.6/.git refs/tags/v2.6.12-tree
(1) /tmp/testrepo$ echo $?
1


I realize that I want to do something strange here, but it seems like a
kind of strange that git already supports in at least some ways, just
not in others.  Am I missing something?

Thanks,
Josh Triplett
Next: Jeff King
Message 1 of 5 in “Cloning a remote tag without using git-fetch-pack directly?”
  1. Josh TriplettApr 19, 2011
  2. Jeff KingApr 20, 2011
  3. Josh TriplettApr 20, 2011
  4. Jeff KingApr 20, 2011
  5. Jonathan NiederApr 20, 2011

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.