git-cat-file(1)
===============

NAME
----
git-cat-file - Provide content or type and size information for repository objects


SYNOPSIS
--------
[verse]
'git cat-file' (-t | -s | -e | -p | <type>) <object>
'git cat-file' (--batch | --batch-check) < <list-of-objects>

DESCRIPTION
-----------
In its first form, the command provides the content or the type of an object in
the repository. The type is required unless '-t' or '-p' is used to find the
object type, or '-s' is used to find the object size.

In the second form, a list of objects (separated by linefeeds) is provided on
stdin, and the SHA1, type, and size of each object is printed on stdout.

OPTIONS
-------
<object>::
	The name of the object to show.
	For a more complete list of ways to spell object names, see
	the "SPECIFYING REVISIONS" section in linkgit:git-rev-parse[1].

-t::
	Instead of the content, show the object type identified by
	<object>.

-s::
	Instead of the content, show the object size identified by
	<object>.

-e::
	Suppress all output; instead exit with zero status if <object>
	exists and is a valid object.

-p::
	Pretty-print the contents of <object> based on its type.

<type>::
	Typically this matches the real type of <object> but asking
	for a type that can trivially be dereferenced from the given
	<object> is also permitted.  An example is to ask for a
	"tree" with <object> being a commit object that contains it,
	or to ask for a "blob" with <object> being a tag object that
	points at it.

--batch::
	Print the SHA1, type, size, and contents of each object provided on
	stdin. May not be combined with any other options or arguments.

--batch-check::
	Print the SHA1, type, and size of each object provided on stdin. May not
	be combined with any other options or arguments.

OUTPUT
------
If '-t' is specified, one of the <type>.

If '-s' is specified, the size of the <object> in bytes.

If '-e' is specified, no output.

If '-p' is specified, the contents of <object> are pretty-printed.

If <type> is specified, the raw (though uncompressed) contents of the <object>
will be returned.

If '--batch' is specified, output of the following form is printed for each
object specified on stdin:

------------
<sha1> SP <type> SP <size> LF
<contents> LF
------------

If '--batch-check' is specified, output of the following form is printed for
each object specified on stdin:

------------
<sha1> SP <type> SP <size> LF
------------

For both '--batch' and '--batch-check', output of the following form is printed
for each object specified on stdin that does not exist in the repository:

------------
<object> SP missing LF
------------

Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the linkgit:git[1] suite
