git-describe(1)
===============

NAME
----
git-describe - Give an object a human readable name based on an available ref

SYNOPSIS
--------
[verse]
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...]
'git describe' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<mark>]
'git describe' <blob>

DESCRIPTION
-----------
The command finds the most recent tag that is reachable from a
commit.  If the tag points to the commit, then only the tag is
shown.  Otherwise, it suffixes the tag name with the number of
additional commits on top of the tagged object and the
abbreviated object name of the most recent commit. The result
is a "human-readable" object name which can also be used to
identify the commit to other git commands.

By default (without --all or --tags) `git describe` only shows
annotated tags.  For more information about creating annotated tags
see the -a and -s options to linkgit:git-tag[1].

If the given object refers to a blob, it will be described
as `<commit-ish>:<path>`, such that the blob can be found
at `<path>` in the `<commit-ish>`, which itself describes the
first commit in which this blob occurs in a reverse revision walk
from HEAD.

OPTIONS
-------
<commit-ish>...::
	Commit-ish object names to describe.  Defaults to HEAD if omitted.

--dirty[=<mark>]::
--broken[=<mark>]::
	Describe the state of the working tree.  When the working
	tree matches HEAD, the output is the same as "git describe
	HEAD".  If the working tree has local modification "-dirty"
	is appended to it.  If a repository is corrupt and Git
	cannot determine if there is local modification, Git will
	error out, unless `--broken' is given, which appends
	the suffix "-broken" instead.

--all::
	Instead of using only the annotated tags, use any ref
	found in `refs/` namespace.  This option enables matching
	any known branch, remote-tracking branch, or lightweight tag.

--tags::
	Instead of using only the annotated tags, use any tag
	found in `refs/tags` namespace.  This option enables matching
	a lightweight (non-annotated) tag.

--contains::
	Instead of finding the tag that predates the commit, find
	the tag that comes after the commit, and thus contains it.
	Automatically implies --tags.

--abbrev=<n>::
	Instead of using the default number of hexadecimal digits (which
	will vary according to the number of objects in the repository with
	a default of 7) of the abbreviated object name, use <n> digits, or
	as many digits as needed to form a unique object name. An <n> of 0
	will suppress long format, only showing the closest tag.

--candidates=<n>::
	Instead of considering only the 10 most recent tags as
	candidates to describe the input commit-ish consider
	up to <n> candidates.  Increasing <n> above 10 will take
	slightly longer but may produce a more accurate result.
	An <n> of 0 will cause only exact matches to be output.

--exact-match::
	Only output exact matches (a tag directly references the
	supplied commit).  This is a synonym for --candidates=0.

--debug::
	Verbosely display information about the searching strategy
	being employed to standard error.  The tag name will still
	be printed to standard out.

--long::
	Always output the long format (the tag, the number of commits
	and the abbreviated commit name) even when it matches a tag.
	This is useful when you want to see parts of the commit object name
	in "describe" output, even when the commit in question happens to be
	a tagged version.  Instead of just emitting the tag name, it will
	describe such a commit as v1.2-0-gdeadbee (0th commit since tag v1.2
	that points at object deadbee....).

--match <pattern>::
	Only consider tags matching the given `glob(7)` pattern,
	excluding the "refs/tags/" prefix. If used with `--all`, it also
	considers local branches and remote-tracking references matching the
	pattern, excluding respectively "refs/heads/" and "refs/remotes/"
	prefix; references of other types are never considered. If given
	multiple times, a list of patterns will be accumulated, and tags
	matching any of the patterns will be considered.  Use `--no-match` to
	clear and reset the list of patterns.

--exclude <pattern>::
	Do not consider tags matching the given `glob(7)` pattern, excluding
	the "refs/tags/" prefix. If used with `--all`, it also does not consider
	local branches and remote-tracking references matching the pattern,
	excluding respectively "refs/heads/" and "refs/remotes/" prefix;
	references of other types are never considered. If given multiple times,
	a list of patterns will be accumulated and tags matching any of the
	patterns will be excluded. When combined with --match a tag will be
	considered when it matches at least one --match pattern and does not
	match any of the --exclude patterns. Use `--no-exclude` to clear and
	reset the list of patterns.

--always::
	Show uniquely abbreviated commit object as fallback.

--first-parent::
	Follow only the first parent commit upon seeing a merge commit.
	This is useful when you wish to not match tags on branches merged
	in the history of the target commit.

EXAMPLES
--------

With something like git.git current tree, I get:

	[torvalds@g5 git]$ git describe parent
	v1.0.4-14-g2414721

i.e. the current head of my "parent" branch is based on v1.0.4,
but since it has a few commits on top of that,
describe has added the number of additional commits ("14") and
an abbreviated object name for the commit itself ("2414721")
at the end.

The number of additional commits is the number
of commits which would be displayed by "git log v1.0.4..parent".
The hash suffix is "-g" + an unambiguous abbreviation for the tip commit
of parent (which was `2414721b194453f058079d897d13c4e377f92dc6`). The
length of the abbreviation scales as the repository grows, using the
approximate number of objects in the repository and a bit of math
around the birthday paradox, and defaults to a minimum of 7.
The "g" prefix stands for "git" and is used to allow describing the version of
a software depending on the SCM the software is managed with. This is useful
in an environment where people may use different SCMs.

Doing a 'git describe' on a tag-name will just show the tag name:

	[torvalds@g5 git]$ git describe v1.0.4
	v1.0.4

With --all, the command can use branch heads as references, so
the output shows the reference path as well:

	[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2
	tags/v1.0.0-21-g975b

	[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^
	heads/lt/describe-7-g975b

With --abbrev set to 0, the command can be used to find the
closest tagname without any suffix:

	[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2
	tags/v1.0.0

Note that the suffix you get if you type these commands today may be
longer than what Linus saw above when he ran these commands, as your
Git repository may have new commits whose object names begin with
975b that did not exist back then, and "-g975b" suffix alone may not
be sufficient to disambiguate these commits.


SEARCH STRATEGY
---------------

For each commit-ish supplied, 'git describe' will first look for
a tag which tags exactly that commit.  Annotated tags will always
be preferred over lightweight tags, and tags with newer dates will
always be preferred over tags with older dates.  If an exact match
is found, its name will be output and searching will stop.

If an exact match was not found, 'git describe' will walk back
through the commit history to locate an ancestor commit which
has been tagged.  The ancestor's tag will be output along with an
abbreviation of the input commit-ish's SHA-1. If `--first-parent` was
specified then the walk will only consider the first parent of each
commit.

If multiple tags were found during the walk then the tag which
has the fewest commits different from the input commit-ish will be
selected and output.  Here fewest commits different is defined as
the number of commits which would be shown by `git log tag..input`
will be the smallest number of commits possible.

BUGS
----

Tree objects as well as tag objects not pointing at commits, cannot be described.
When describing blobs, the lightweight tags pointing at blobs are ignored,
but the blob is still described as <commit-ish>:<path> despite the lightweight
tag being favorable.

GIT
---
Part of the linkgit:git[1] suite
