Home Explore Blog CI



git

4th chunk of `Documentation/git-cat-file.adoc`
bb8811d1ab9b7069a2446e9c71760df3a4ce4a7a93a6665a0000000100000adc
 output is NUL-delimited instead of
	newline-delimited.

-z::
	Only meaningful with `--batch`, `--batch-check`, or
	`--batch-command`; input is NUL-delimited instead of
	newline-delimited. This option is deprecated in favor of
	`-Z` as the output can otherwise be ambiguous.


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, unless the `<object>` is malformed.

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.

BATCH OUTPUT
------------

If `--batch` or `--batch-check` is given, `cat-file` will read objects
from stdin, one per line, and print information about them in the same
order as they have been read. By default, the whole line is
considered as an object, as if it were fed to linkgit:git-rev-parse[1].

When `--batch-command` is given, `cat-file` will read commands from stdin,
one per line, and print information based on the command given. With
`--batch-command`, the `info` command followed by an object will print
information about the object the same way `--batch-check` would, and the
`contents` command followed by an object prints contents in the same way
`--batch` would.

You can specify the information shown for each object by using a custom
`<format>`. The `<format>` 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 full hex representation of the object name.

`objecttype`::
	The type 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).

`objectsize:disk`::
	The size, in bytes, that the object takes up on disk. See the
	note about on-disk sizes in the `CAVEATS` section below.

`deltabase`::
	If the object is stored as a delta on-disk, this expands to the
	full hex representation of the delta base object name.
	Otherwise, expands to the null OID (all zeroes). See `CAVEATS`
	below.

`rest`::
	If this atom is used in the output string, input lines are split
	at the first whitespace boundary. All characters before that
	whitespace are considered to be the object name; characters
	after that first run of whitespace (i.e., the "rest" of the
	line) are output in place of the `%(rest)` atom.

If no format is specified, the default format is `%(objectname)
%(objecttype) %(objectsize)`.

If `--batch` is specified, or if `--batch-command` is used with the `contents`
command, the object information is followed by the object contents (consisting
of `%(objectsize)` bytes), followed by a newline.

For example, `--batch`

Title: Git Cat-File Command Output and Formatting
Summary
The git-cat-file command provides various options for customizing its output, including specifying the type of information to display, using custom formats with placeholders, and controlling the delimiter between output lines, allowing for flexible and detailed object information retrieval.