# Since when is a tag a commit?

3 messages from 2006-08-08 to 2006-08-08. Participants: Shawn Pearce, Daniel Barkalow, Jakub Narebski.
Thread: https://gitlist.dev/t/5171

## Shawn Pearce, 2006-08-08 02:12

Subject: Since when is a tag a commit?
Message-ID: <20060808021251.GA19548@spearce.org>
URL: https://gitlist.dev/e/20060808021251.GA19548%40spearce.org

```
Current `next`:

  [spearce@pb15 git]$ git cat-file commit v1.4.1
  tree 34c8f9c263c1c20592d3f56c3d86bea322577155
  parent 6631c73685bea3c6300938f4900db0d0c6bee457
  author Linus Torvalds <torvalds@osdl.org> 1151691633 -0700
  committer Junio C Hamano <junkio@cox.net> 1151803695 -0700
  ...

Uhhh, that's a tag.  I know it is:

  [spearce@pb15 git]$ git cat-file tag v1.4.1
  object 0556a11a0df6b4119e01aa77dfb795561e62eb34
  type commit
  tag v1.4.1
  tagger Junio C Hamano <junkio@cox.net> 1151818415 -0700
  ...

And I know its not a tree:

  [spearce@pb15 git]$ git cat-file tree v1.4.1
  100644 .gitignore{?MX~Ä????y?v?X?u100644 COPYINGo?...

So it better not be a blob:

  [spearce@pb15 git]$ git cat-file blob v1.4.1
  fatal: git-cat-file v1.4.1: bad file

What the heck is going on?  Since when did git cat-file happily
consider a tag to be a tag, a commit and a tree?  Its that
intentional that we're peeling back the object to the requested type?

-- 
Shawn.

```

## Daniel Barkalow, 2006-08-08 03:28

Subject: Re: Since when is a tag a commit?
Message-ID: <Pine.LNX.4.64.0608072325390.9789@iabervon.org>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0608072325390.9789%40iabervon.org
In-Reply-To: <20060808021251.GA19548@spearce.org>

```
On Mon, 7 Aug 2006, Shawn Pearce wrote:

> What the heck is going on?  Since when did git cat-file happily
> consider a tag to be a tag, a commit and a tree?  Its that
> intentional that we're peeling back the object to the requested type?

I think it's done that for a long time now. All of the other commands that 
take a tree or a commit will accept a tag, so why shouldn't "git cat-file 
tree"?

	-Daniel
*This .sig left intentionally blank*

```

## Jakub Narebski, 2006-08-08 09:34

Subject: Re: Since when is a tag a commit?
Message-ID: <eb9lrm$3ef$1@sea.gmane.org>
URL: https://gitlist.dev/e/eb9lrm%243ef%241%40sea.gmane.org
In-Reply-To: <20060808021251.GA19548@spearce.org>

```
Shawn Pearce wrote:

> Current `next`:
> 
>   [spearce@pb15 git]$ git cat-file commit v1.4.1
>   tree 34c8f9c263c1c20592d3f56c3d86bea322577155
>   parent 6631c73685bea3c6300938f4900db0d0c6bee457
>   author Linus Torvalds <torvalds@osdl.org> 1151691633 -0700
>   committer Junio C Hamano <junkio@cox.net> 1151803695 -0700
>   ...

This is commit referenced by tag, i.e. v1.4.1^{commit}

> Uhhh, that's a tag.  I know it is:
> 
>   [spearce@pb15 git]$ git cat-file tag v1.4.1
>   object 0556a11a0df6b4119e01aa77dfb795561e62eb34
>   type commit
>   tag v1.4.1
>   tagger Junio C Hamano <junkio@cox.net> 1151818415 -0700
>   ...

This is tag itself.

> And I know its not a tree:
> 
>   [spearce@pb15 git]$ git cat-file tree v1.4.1
>   100644 .gitignore{?MX~Ä????y?v?X?u100644 COPYINGo?...

This is tree referenced by commit, referenced by tag, i.e. v1.4.1^{tree}

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git

```
