1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml" xml:
lang=
"en">
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8" />
6 <meta name=
"generator" content=
"AsciiDoc 8.4.5" />
7 <title>git-describe(
1)
</title>
8 <style type=
"text/css">
10 p
, li
, dt
, dd
, div
, pre
, h1
, h2
, h3
, h4
, h5
, h6
{
12 border: 1px solid red;
17 margin: 1em 5% 1em 5%;
22 text-decoration: underline
;
42 h1
, h2
, h3
, h4
, h5
, h6
{
44 font-family: sans-serif
;
51 border-bottom: 2px solid silver
;
69 border: 1px solid silver
;
88 font-family: sans-serif
;
94 span#revnumber
, span#revdate
, span#revremark
{
95 font-family: sans-serif
;
99 font-family: sans-serif
;
101 border-top: 2px solid silver
;
107 padding-bottom: 0.5em;
111 padding-bottom: 0.5em;
116 margin-bottom: 1.5em;
118 div
.tableblock
, div
.imageblock
, div
.exampleblock
, div
.verseblock
,
119 div
.quoteblock
, div
.literalblock
, div
.listingblock
, div
.sidebarblock
,
120 div
.admonitionblock
{
122 margin-bottom: 1.5em;
124 div
.admonitionblock
{
126 margin-bottom: 2.5em;
129 div
.content
{ /* Block element content. */
133 /* Block element titles. */
134 div
.title
, caption
.title
{
136 font-family: sans-serif
;
140 margin-bottom: 0.5em;
146 td div
.title:first-child
{
149 div
.content div
.title:first-child
{
152 div
.content
+ div
.title
{
156 div
.sidebarblock
> div
.content
{
158 border: 1px solid silver
;
162 div
.listingblock
> div
.content
{
163 border: 1px solid silver
;
172 div
.quoteblock
> div
.attribution
{
181 div
.verseblock
> div
.content
{
184 div
.verseblock
> div
.attribution
{
188 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
189 div
.verseblock
+ div
.attribution
{
193 div
.admonitionblock
.icon
{
197 text-decoration: underline
;
199 padding-right: 0.5em;
201 div
.admonitionblock td
.content
{
203 border-left: 2px solid silver
;
206 div
.exampleblock
> div
.content
{
207 border-left: 2px solid silver
;
211 div
.imageblock div
.content
{ padding-left: 0; }
212 span
.image img
{ border-style: none
; }
213 a
.image:visited
{ color: white
; }
217 margin-bottom: 0.8em;
230 list-style-position: outside
;
233 list-style-type: decimal
;
236 list-style-type: lower-alpha
;
239 list-style-type: upper-alpha
;
242 list-style-type: lower-roman
;
245 list-style-type: upper-roman
;
248 div
.compact ul
, div
.compact ol
,
249 div
.compact p
, div
.compact p
,
250 div
.compact div
, div
.compact div
{
252 margin-bottom: 0.1em;
255 div
.tableblock
> table
{
256 border: 3px solid
#527bbd;
259 font-family: sans-serif
;
271 /* Because the table frame attribute is overriden by CSS in most browsers. */
272 div
.tableblock
> table
[frame
="void"] {
275 div
.tableblock
> table
[frame
="hsides"] {
276 border-left-style: none
;
277 border-right-style: none
;
279 div
.tableblock
> table
[frame
="vsides"] {
280 border-top-style: none
;
281 border-bottom-style: none
;
287 margin-bottom: 0.8em;
290 padding-bottom: 15px;
292 dt
.hdlist1
.strong
, td
.hdlist1
.strong
{
298 padding-right: 0.8em;
304 div
.hdlist
.compact tr
{
314 div#footer-badges
{ display: none
; }
319 font-family: sans-serif
;
323 margin-bottom: 0.1em;
326 div
.toclevel1
, div
.toclevel2
, div
.toclevel3
, div
.toclevel4
{
342 /* Overrides for manpage documents */
345 padding-bottom: 0.5em;
346 border-top: 2px solid silver
;
347 border-bottom: 2px solid silver
;
357 div#toc
{ display: none
; }
360 /* Workarounds for IE6's broken and incomplete CSS2. */
362 div
.sidebar-content
{
364 border: 1px solid silver
;
367 div
.sidebar-title
, div
.image-title
{
369 font-family: sans-serif
;
372 margin-bottom: 0.5em;
375 div
.listingblock div
.content
{
376 border: 1px solid silver
;
381 div
.quoteblock-attribution
{
386 div
.verseblock-content
{
389 div
.verseblock-attribution
{
394 div
.exampleblock-content
{
395 border-left: 2px solid silver
;
399 /* IE6 sets dynamically generated links as visited. */
400 div#toc
a:visited
{ color: blue
; }
406 git-describe(
1) Manual Page
409 <div class=
"sectionbody">
411 Show the most recent tag that is reachable from a commit
415 <h2 id=
"_synopsis">SYNOPSIS
</h2>
416 <div class=
"sectionbody">
417 <div class=
"verseblock">
418 <div class=
"verseblock-content"><em>git describe
</em> [--all] [--tags] [--contains] [--abbrev=
<n
>]
<committish
>…
419 <em>git describe
</em> [--all] [--tags] [--contains] [--abbrev=
<n
>] --dirty[=
<mark
>]
</div>
420 <div class=
"verseblock-attribution">
423 <h2 id=
"_description">DESCRIPTION
</h2>
424 <div class=
"sectionbody">
425 <div class=
"paragraph"><p>The command finds the most recent tag that is reachable from a
426 commit. If the tag points to the commit, then only the tag is
427 shown. Otherwise, it suffixes the tag name with the number of
428 additional commits on top of the tagged object and the
429 abbreviated object name of the most recent commit.
</p></div>
430 <div class=
"paragraph"><p>By default (without --all or --tags)
<tt>git describe
</tt> only shows
431 annotated tags. For more information about creating annotated tags
432 see the -a and -s options to
<a href=
"git-tag.html">git-tag(
1)
</a>.
</p></div>
434 <h2 id=
"_options">OPTIONS
</h2>
435 <div class=
"sectionbody">
436 <div class=
"dlist"><dl>
438 <committish
>…
442 Committish object names to describe.
446 --dirty[=
<mark
>]
450 Describe the working tree.
451 It means describe HEAD and appends
<mark
> (
<tt>-dirty
</tt> by
452 default) if the working tree is dirty.
460 Instead of using only the annotated tags, use any ref
461 found in
<tt>.git/refs/
</tt>. This option enables matching
462 any known branch, remote-tracking branch, or lightweight tag.
470 Instead of using only the annotated tags, use any tag
471 found in
<tt>.git/refs/tags
</tt>. This option enables matching
472 a lightweight (non-annotated) tag.
480 Instead of finding the tag that predates the commit, find
481 the tag that comes after the commit, and thus contains it.
482 Automatically implies --tags.
490 Instead of using the default
7 hexadecimal digits as the
491 abbreviated object name, use
<n
> digits, or as many digits
492 as needed to form a unique object name. An
<n
> of
0
493 will suppress long format, only showing the closest tag.
497 --candidates=
<n
>
501 Instead of considering only the
10 most recent tags as
502 candidates to describe the input committish consider
503 up to
<n
> candidates. Increasing
<n
> above
10 will take
504 slightly longer but may produce a more accurate result.
505 An
<n
> of
0 will cause only exact matches to be output.
513 Only output exact matches (a tag directly references the
514 supplied commit). This is a synonym for --candidates=
0.
522 Verbosely display information about the searching strategy
523 being employed to standard error. The tag name will still
524 be printed to standard out.
532 Always output the long format (the tag, the number of commits
533 and the abbreviated commit name) even when it matches a tag.
534 This is useful when you want to see parts of the commit object name
535 in
"describe" output, even when the commit in question happens to be
536 a tagged version. Instead of just emitting the tag name, it will
537 describe such a commit as v1.2-
0-gdeadbee (
0th commit since tag v1.2
538 that points at object deadbee
….).
542 --match
<pattern
>
546 Only consider tags matching the given pattern (can be used to avoid
547 leaking private tags made from the repository).
555 Show uniquely abbreviated commit object as fallback.
560 <h2 id=
"_examples">EXAMPLES
</h2>
561 <div class=
"sectionbody">
562 <div class=
"paragraph"><p>With something like git.git current tree, I get:
</p></div>
563 <div class=
"literalblock">
564 <div class=
"content">
565 <pre><tt>[torvalds@g5 git]$ git describe parent
566 v1.0
.4-
14-g2414721
</tt></pre>
568 <div class=
"paragraph"><p>i.e. the current head of my
"parent" branch is based on v1.0
.4,
569 but since it has a few commits on top of that,
570 describe has added the number of additional commits (
"14") and
571 an abbreviated object name for the commit itself (
"2414721")
572 at the end.
</p></div>
573 <div class=
"paragraph"><p>The number of additional commits is the number
574 of commits which would be displayed by
"git log v1.0.4..parent".
575 The hash suffix is
"-g" +
7-char abbreviation for the tip commit
576 of parent (which was
<tt>2414721b194453f058079d897d13c4e377f92dc6
</tt>).
577 The
"g" prefix stands for
"git" and is used to allow describing the version of
578 a software depending on the SCM the software is managed with. This is useful
579 in an environment where people may use different SCMs.
</p></div>
580 <div class=
"paragraph"><p>Doing a
<em>git describe
</em> on a tag-name will just show the tag name:
</p></div>
581 <div class=
"literalblock">
582 <div class=
"content">
583 <pre><tt>[torvalds@g5 git]$ git describe v1.0
.4
586 <div class=
"paragraph"><p>With --all, the command can use branch heads as references, so
587 the output shows the reference path as well:
</p></div>
588 <div class=
"literalblock">
589 <div class=
"content">
590 <pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=
4 v1.0
.5^
2
591 tags/v1.0
.0-
21-g975b
</tt></pre>
593 <div class=
"literalblock">
594 <div class=
"content">
595 <pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=
4 HEAD^
596 heads/lt/describe-
7-g975b
</tt></pre>
598 <div class=
"paragraph"><p>With --abbrev set to
0, the command can be used to find the
599 closest tagname without any suffix:
</p></div>
600 <div class=
"literalblock">
601 <div class=
"content">
602 <pre><tt>[torvalds@g5 git]$ git describe --abbrev=
0 v1.0
.5^
2
603 tags/v1.0
.0</tt></pre>
605 <div class=
"paragraph"><p>Note that the suffix you get if you type these commands today may be
606 longer than what Linus saw above when he ran these commands, as your
607 git repository may have new commits whose object names begin with
608 975b that did not exist back then, and
"-g975b" suffix alone may not
609 be sufficient to disambiguate these commits.
</p></div>
611 <h2 id=
"_search_strategy">SEARCH STRATEGY
</h2>
612 <div class=
"sectionbody">
613 <div class=
"paragraph"><p>For each committish supplied,
<em>git describe
</em> will first look for
614 a tag which tags exactly that commit. Annotated tags will always
615 be preferred over lightweight tags, and tags with newer dates will
616 always be preferred over tags with older dates. If an exact match
617 is found, its name will be output and searching will stop.
</p></div>
618 <div class=
"paragraph"><p>If an exact match was not found,
<em>git describe
</em> will walk back
619 through the commit history to locate an ancestor commit which
620 has been tagged. The ancestor
’s tag will be output along with an
621 abbreviation of the input committish
’s SHA1.
</p></div>
622 <div class=
"paragraph"><p>If multiple tags were found during the walk then the tag which
623 has the fewest commits different from the input committish will be
624 selected and output. Here fewest commits different is defined as
625 the number of commits which would be shown by
<tt>git log tag..input
</tt>
626 will be the smallest number of commits possible.
</p></div>
628 <h2 id=
"_git">GIT
</h2>
629 <div class=
"sectionbody">
630 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
633 <div id=
"footer-text">
634 Last updated
2011-
03-
15 23:
30:
13 UTC