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 | | --textconv ) 'git cat-file' (--batch | --batch-check) < 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, or '--textconv' is used (which implies type "blob"). In the second form, a list of objects (separated by linefeeds) is provided on stdin, and the SHA-1, type, and size of each object is printed on stdout. OPTIONS ------- :: 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:gitrevisions[7]. -t:: Instead of the content, show the object type identified by . -s:: Instead of the content, show the object size identified by . -e:: Suppress all output; instead exit with zero status if exists and is a valid object. -p:: Pretty-print the contents of based on its type. :: Typically this matches the real type of but asking for a type that can trivially be dereferenced from the given is also permitted. An example is to ask for a "tree" with being a commit object that contains it, or to ask for a "blob" with being a tag object that points at it. --textconv:: Show the content as transformed by a textconv filter. In this case, has be of the form :, or : in order to apply the filter to the content recorded in the index at . --batch:: --batch=:: Print object information and contents for each object provided on stdin. May not be combined with any other options or arguments. See the section `BATCH OUTPUT` below for details. --batch-check:: --batch-check=:: Print object information for each object provided on stdin. May not be combined with any other options or arguments. See the section `BATCH OUTPUT` below for details. OUTPUT ------ If '-t' is specified, one of the . If '-s' is specified, the size of the in bytes. If '-e' is specified, no output. If '-p' is specified, the contents of are pretty-printed. If is specified, the raw (though uncompressed) contents of the will be returned. BATCH OUTPUT ------------ If `--batch` or `--batch-check` is given, `cat-file` will read objects from stdin, one per line, and print information about them. Each line is considered as a whole object name, and is parsed as if given to linkgit:git-rev-parse[1]. You can specify the information shown for each object by using a custom ``. The `` is copied literally to stdout for each object, with placeholders of the form `%(atom)` expanded, followed by a newline. The available atoms are: `objectname`:: The 40-hex object name of the object. `objecttype`:: The type of of the object (the same as `cat-file -t` reports). `objectsize`:: The size, in bytes, of the object (the same as `cat-file -s` reports). If no format is specified, the default format is `%(objectname) %(objecttype) %(objectsize)`. If `--batch` is specified, the object information is followed by the object contents (consisting of `%(objectsize)` bytes), followed by a newline. For example, `--batch` without a custom format would produce: ------------ SP SP LF LF ------------ Whereas `--batch-check='%(objectname) %(objecttype)'` would produce: ------------ SP LF ------------ If a name is specified on stdin that cannot be resolved to an object in the repository, then `cat-file` will ignore any custom format and print: ------------ SP missing LF ------------ GIT --- Part of the linkgit:git[1] suite