Merge branch 'jk/strbuf-vaddf'
[git/jnareb-git.git] / Documentation / git-cat-file.txt
blob2fb95bbd19f26317a542abfdb78d3b2be72f577b
1 git-cat-file(1)
2 ===============
4 NAME
5 ----
6 git-cat-file - Provide content or type and size information for repository objects
9 SYNOPSIS
10 --------
11 [verse]
12 'git cat-file' (-t | -s | -e | -p | <type> | --textconv ) <object>
13 'git cat-file' (--batch | --batch-check) < <list-of-objects>
15 DESCRIPTION
16 -----------
17 In its first form, the command provides the content or the type of an object in
18 the repository. The type is required unless '-t' or '-p' is used to find the
19 object type, or '-s' is used to find the object size, or '--textconv' is used
20 (which implies type "blob").
22 In the second form, a list of objects (separated by linefeeds) is provided on
23 stdin, and the SHA1, type, and size of each object is printed on stdout.
25 OPTIONS
26 -------
27 <object>::
28         The name of the object to show.
29         For a more complete list of ways to spell object names, see
30         the "SPECIFYING REVISIONS" section in linkgit:gitrevisions[7].
32 -t::
33         Instead of the content, show the object type identified by
34         <object>.
36 -s::
37         Instead of the content, show the object size identified by
38         <object>.
40 -e::
41         Suppress all output; instead exit with zero status if <object>
42         exists and is a valid object.
44 -p::
45         Pretty-print the contents of <object> based on its type.
47 <type>::
48         Typically this matches the real type of <object> but asking
49         for a type that can trivially be dereferenced from the given
50         <object> is also permitted.  An example is to ask for a
51         "tree" with <object> being a commit object that contains it,
52         or to ask for a "blob" with <object> being a tag object that
53         points at it.
55 --textconv::
56         Show the content as transformed by a textconv filter. In this case,
57         <object> has be of the form <treeish>:<path>, or :<path> in order
58         to apply the filter to the content recorded in the index at <path>.
60 --batch::
61         Print the SHA1, type, size, and contents of each object provided on
62         stdin. May not be combined with any other options or arguments.
64 --batch-check::
65         Print the SHA1, type, and size of each object provided on stdin. May not
66         be combined with any other options or arguments.
68 OUTPUT
69 ------
70 If '-t' is specified, one of the <type>.
72 If '-s' is specified, the size of the <object> in bytes.
74 If '-e' is specified, no output.
76 If '-p' is specified, the contents of <object> are pretty-printed.
78 If <type> is specified, the raw (though uncompressed) contents of the <object>
79 will be returned.
81 If '--batch' is specified, output of the following form is printed for each
82 object specified on stdin:
84 ------------
85 <sha1> SP <type> SP <size> LF
86 <contents> LF
87 ------------
89 If '--batch-check' is specified, output of the following form is printed for
90 each object specified on stdin:
92 ------------
93 <sha1> SP <type> SP <size> LF
94 ------------
96 For both '--batch' and '--batch-check', output of the following form is printed
97 for each object specified on stdin that does not exist in the repository:
99 ------------
100 <object> SP missing LF
101 ------------
105 Part of the linkgit:git[1] suite