6 git-cat-file - Provide content or type and size information for repository objects
12 'git cat-file' (-t | -s | -e | -p | <type> | --textconv ) <object>
13 'git cat-file' (--batch | --batch-check) < <list-of-objects>
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 SHA-1, type, and size of each object is printed on stdout.
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].
33 Instead of the content, show the object type identified by
37 Instead of the content, show the object size identified by
41 Suppress all output; instead exit with zero status if <object>
42 exists and is a valid object.
45 Pretty-print the contents of <object> based on its 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
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>.
62 Print object information and contents for each object provided
63 on stdin. May not be combined with any other options or arguments.
64 See the section `BATCH OUTPUT` below for details.
67 --batch-check=<format>::
68 Print object information for each object provided on stdin. May
69 not be combined with any other options or arguments. See the
70 section `BATCH OUTPUT` below for details.
74 If '-t' is specified, one of the <type>.
76 If '-s' is specified, the size of the <object> in bytes.
78 If '-e' is specified, no output.
80 If '-p' is specified, the contents of <object> are pretty-printed.
82 If <type> is specified, the raw (though uncompressed) contents of the <object>
88 If `--batch` or `--batch-check` is given, `cat-file` will read objects
89 from stdin, one per line, and print information about them.
91 Each line is considered as a whole object name, and is parsed as if
92 given to linkgit:git-rev-parse[1].
94 You can specify the information shown for each object by using a custom
95 `<format>`. The `<format>` is copied literally to stdout for each
96 object, with placeholders of the form `%(atom)` expanded, followed by a
97 newline. The available atoms are:
100 The 40-hex object name of the object.
103 The type of of the object (the same as `cat-file -t` reports).
106 The size, in bytes, of the object (the same as `cat-file -s`
109 If no format is specified, the default format is `%(objectname)
110 %(objecttype) %(objectsize)`.
112 If `--batch` is specified, the object information is followed by the
113 object contents (consisting of `%(objectsize)` bytes), followed by a
116 For example, `--batch` without a custom format would produce:
119 <sha1> SP <type> SP <size> LF
123 Whereas `--batch-check='%(objectname) %(objecttype)'` would produce:
129 If a name is specified on stdin that cannot be resolved to an object in
130 the repository, then `cat-file` will ignore any custom format and print:
133 <object> SP missing LF
138 Part of the linkgit:git[1] suite