Home Explore Blog CI



git

2nd chunk of `Documentation/git-for-each-ref.adoc`
4cfcc2f7f81f1fee307817d6fefb0047a792b24a54e4bfc60000000100000fa6
 commit (HEAD
	if not specified).

--ignore-case::
	Sorting and filtering refs are case insensitive.

--omit-empty::
	Do not print a newline after formatted refs where the format expands
	to the empty string.

--exclude=<pattern>::
	If one or more patterns are given, only refs which do not match
	any excluded pattern(s) are shown. Matching is done using the
	same rules as `<pattern>` above.

--include-root-refs::
	List root refs (HEAD and pseudorefs) apart from regular refs.

FIELD NAMES
-----------

Various values from structured fields in referenced objects can
be used to interpolate into the resulting output, or as sort
keys.

For all objects, the following names can be used:

refname::
	The name of the ref (the part after $GIT_DIR/).
	For a non-ambiguous short name of the ref append `:short`.
	The option core.warnAmbiguousRefs is used to select the strict
	abbreviation mode. If `lstrip=<N>` (`rstrip=<N>`) is appended, strips `<N>`
	slash-separated path components from the front (back) of the refname
	(e.g. `%(refname:lstrip=2)` turns `refs/tags/foo` into `foo` and
	`%(refname:rstrip=2)` turns `refs/tags/foo` into `refs`).
	If `<N>` is a negative number, strip as many path components as
	necessary from the specified end to leave `-<N>` path components
	(e.g. `%(refname:lstrip=-2)` turns
	`refs/tags/foo` into `tags/foo` and `%(refname:rstrip=-1)`
	turns `refs/tags/foo` into `refs`). When the ref does not have
	enough components, the result becomes an empty string if
	stripping with positive <N>, or it becomes the full refname if
	stripping with negative <N>.  Neither is an error.
+
`strip` can be used as a synonym to `lstrip`.

objecttype::
	The type of the object (`blob`, `tree`, `commit`, `tag`).

objectsize::
	The size of the object (the same as 'git cat-file -s' reports).
	Append `:disk` to get the size, in bytes, that the object takes up on
	disk. See the note about on-disk sizes in the `CAVEATS` section below.
objectname::
	The object name (aka SHA-1).
	For a non-ambiguous abbreviation of the object name append `:short`.
	For an abbreviation of the object name with desired length append
	`:short=<length>`, where the minimum length is MINIMUM_ABBREV. The
	length may be exceeded to ensure unique object names.
deltabase::
	This expands to the object name of the delta base for the
	given object, if it is stored as a delta.  Otherwise it
	expands to the null object name (all zeroes).

upstream::
	The name of a local ref which can be considered ``upstream''
	from the displayed ref. Respects `:short`, `:lstrip` and
	`:rstrip` in the same way as `refname` above.  Additionally
	respects `:track` to show "[ahead N, behind M]" and
	`:trackshort` to show the terse version: ">" (ahead), "<"
	(behind), "<>" (ahead and behind), or "=" (in sync). `:track`
	also prints "[gone]" whenever unknown upstream ref is
	encountered. Append `:track,nobracket` to show tracking
	information without brackets (i.e "ahead N, behind M").
+
For any remote-tracking branch `%(upstream)`, `%(upstream:remotename)`
and `%(upstream:remoteref)` refer to the name of the remote and the
name of the tracked remote ref, respectively. In other words, the
remote-tracking branch can be updated explicitly and individually by
using the refspec `%(upstream:remoteref):%(upstream)` to fetch from
`%(upstream:remotename)`.
+
Has no effect if the ref does not have tracking information associated
with it.  All the options apart from `nobracket` are mutually exclusive,
but if used together the last option is selected.

push::
	The name of a local ref which represents the `@{push}`
	location for the displayed ref. Respects `:short`, `:lstrip`,
	`:rstrip`, `:track`, `:trackshort`, `:remotename`, and `:remoteref`
	options as `upstream` does. Produces an empty string if no `@{push}`
	ref is configured.

HEAD::
	'*' if HEAD matches current ref (the checked out branch), ' '
	otherwise.

color::
	Change output color. Followed by `:<colorname>`, where color
	names are described under Values

Title: Git For-Each-Ref Field Names and Options
Summary
The git-for-each-ref command provides various field names that can be used to interpolate values into the output, including refname, objecttype, objectsize, objectname, and more. Additionally, several options are available to customize the output, such as ignoring case, omitting empty lines, excluding patterns, and including root refs. The command also supports tracking information, push locations, and color changes, allowing for flexible and customizable output.