Home Explore Blog CI



git

1st chunk of `Documentation/git-for-each-ref.adoc`
f29423ee53efbf040e1c55b8a1955cfbfd4501a8ec5f3ca00000000100000fa5
git-for-each-ref(1)
===================

NAME
----
git-for-each-ref - Output information on each ref

SYNOPSIS
--------
[verse]
'git for-each-ref' [--count=<count>] [--shell|--perl|--python|--tcl]
		   [(--sort=<key>)...] [--format=<format>]
		   [--include-root-refs] [ --stdin | <pattern>... ]
		   [--points-at=<object>]
		   [--merged[=<object>]] [--no-merged[=<object>]]
		   [--contains[=<object>]] [--no-contains[=<object>]]
		   [--exclude=<pattern> ...]

DESCRIPTION
-----------

Iterate over all refs that match `<pattern>` and show them
according to the given `<format>`, after sorting them according
to the given set of `<key>`.  If `<count>` is given, stop after
showing that many refs.  The interpolated values in `<format>`
can optionally be quoted as string literals in the specified
host language allowing their direct evaluation in that language.

OPTIONS
-------
<pattern>...::
	If one or more patterns are given, only refs are shown that
	match against at least one pattern, either using fnmatch(3) or
	literally, in the latter case matching completely or from the
	beginning up to a slash.

--stdin::
	If `--stdin` is supplied, then the list of patterns is read from
	standard input instead of from the argument list.

--count=<count>::
	By default the command shows all refs that match
	`<pattern>`.  This option makes it stop after showing
	that many refs.

--sort=<key>::
	A field name to sort on.  Prefix `-` to sort in
	descending order of the value.  When unspecified,
	`refname` is used.  You may use the --sort=<key> option
	multiple times, in which case the last key becomes the primary
	key.

--format=<format>::
	A string that interpolates `%(fieldname)` from a ref being shown and
	the object it points at. In addition, the string literal `%%`
	renders as `%` and `%xx` - where `xx` are hex digits - renders as
	the character with hex code `xx`. For example, `%00` interpolates to
	`\0` (NUL), `%09` to `\t` (TAB), and `%0a` to `\n` (LF).
+
When unspecified, `<format>` defaults to `%(objectname) SPC %(objecttype)
TAB %(refname)`.

--color[=<when>]::
	Respect any colors specified in the `--format` option. The
	`<when>` field must be one of `always`, `never`, or `auto` (if
	`<when>` is absent, behave as if `always` was given).

--shell::
--perl::
--python::
--tcl::
	If given, strings that substitute `%(fieldname)`
	placeholders are quoted as string literals suitable for
	the specified host language.  This is meant to produce
	a scriptlet that can directly be `eval`ed.

--points-at=<object>::
	Only list refs which points at the given object.

--merged[=<object>]::
	Only list refs whose tips are reachable from the
	specified commit (HEAD if not specified).

--no-merged[=<object>]::
	Only list refs whose tips are not reachable from the
	specified commit (HEAD if not specified).

--contains[=<object>]::
	Only list refs which contain the specified commit (HEAD if not
	specified).

--no-contains[=<object>]::
	Only list refs which don't contain the specified 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)

Title: Git For-Each-Ref Command
Summary
The git-for-each-ref command is used to output information on each ref in a Git repository, allowing for sorting, filtering, and formatting of the results based on various options and field names. It provides a range of options to customize the output, including sorting by specific fields, filtering by patterns, and formatting the results as string literals in different programming languages. The command can also be used to show refs that match certain conditions, such as being merged or containing specific commits, and can handle case-insensitive sorting and filtering.