Autogenerated HTML docs for v1.7.5.1-339-gb602ed
[git/jnareb-git.git] / git-describe.html
blob0ff2d5734eb946f60c8c516838366018b976bf04
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">
4 <head>
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">
9 /* Debug borders */
10 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
12 border: 1px solid red;
16 body {
17 margin: 1em 5% 1em 5%;
20 a {
21 color: blue;
22 text-decoration: underline;
24 a:visited {
25 color: fuchsia;
28 em {
29 font-style: italic;
30 color: navy;
33 strong {
34 font-weight: bold;
35 color: #083194;
38 tt {
39 color: navy;
42 h1, h2, h3, h4, h5, h6 {
43 color: #527bbd;
44 font-family: sans-serif;
45 margin-top: 1.2em;
46 margin-bottom: 0.5em;
47 line-height: 1.3;
50 h1, h2, h3 {
51 border-bottom: 2px solid silver;
53 h2 {
54 padding-top: 0.5em;
56 h3 {
57 float: left;
59 h3 + * {
60 clear: left;
63 div.sectionbody {
64 font-family: serif;
65 margin-left: 0;
68 hr {
69 border: 1px solid silver;
72 p {
73 margin-top: 0.5em;
74 margin-bottom: 0.5em;
77 ul, ol, li > p {
78 margin-top: 0;
81 pre {
82 padding: 0;
83 margin: 0;
86 span#author {
87 color: #527bbd;
88 font-family: sans-serif;
89 font-weight: bold;
90 font-size: 1.1em;
92 span#email {
94 span#revnumber, span#revdate, span#revremark {
95 font-family: sans-serif;
98 div#footer {
99 font-family: sans-serif;
100 font-size: small;
101 border-top: 2px solid silver;
102 padding-top: 0.5em;
103 margin-top: 4.0em;
105 div#footer-text {
106 float: left;
107 padding-bottom: 0.5em;
109 div#footer-badges {
110 float: right;
111 padding-bottom: 0.5em;
114 div#preamble {
115 margin-top: 1.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 {
121 margin-top: 1.5em;
122 margin-bottom: 1.5em;
124 div.admonitionblock {
125 margin-top: 2.5em;
126 margin-bottom: 2.5em;
129 div.content { /* Block element content. */
130 padding: 0;
133 /* Block element titles. */
134 div.title, caption.title {
135 color: #527bbd;
136 font-family: sans-serif;
137 font-weight: bold;
138 text-align: left;
139 margin-top: 1.0em;
140 margin-bottom: 0.5em;
142 div.title + * {
143 margin-top: 0;
146 td div.title:first-child {
147 margin-top: 0.0em;
149 div.content div.title:first-child {
150 margin-top: 0.0em;
152 div.content + div.title {
153 margin-top: 0.0em;
156 div.sidebarblock > div.content {
157 background: #ffffee;
158 border: 1px solid silver;
159 padding: 0.5em;
162 div.listingblock > div.content {
163 border: 1px solid silver;
164 background: #f4f4f4;
165 padding: 0.5em;
168 div.quoteblock {
169 padding-left: 2.0em;
170 margin-right: 10%;
172 div.quoteblock > div.attribution {
173 padding-top: 0.5em;
174 text-align: right;
177 div.verseblock {
178 padding-left: 2.0em;
179 margin-right: 10%;
181 div.verseblock > div.content {
182 white-space: pre;
184 div.verseblock > div.attribution {
185 padding-top: 0.75em;
186 text-align: left;
188 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
189 div.verseblock + div.attribution {
190 text-align: left;
193 div.admonitionblock .icon {
194 vertical-align: top;
195 font-size: 1.1em;
196 font-weight: bold;
197 text-decoration: underline;
198 color: #527bbd;
199 padding-right: 0.5em;
201 div.admonitionblock td.content {
202 padding-left: 0.5em;
203 border-left: 2px solid silver;
206 div.exampleblock > div.content {
207 border-left: 2px solid silver;
208 padding: 0.5em;
211 div.imageblock div.content { padding-left: 0; }
212 span.image img { border-style: none; }
213 a.image:visited { color: white; }
215 dl {
216 margin-top: 0.8em;
217 margin-bottom: 0.8em;
219 dt {
220 margin-top: 0.5em;
221 margin-bottom: 0;
222 font-style: normal;
223 color: navy;
225 dd > *:first-child {
226 margin-top: 0.1em;
229 ul, ol {
230 list-style-position: outside;
232 ol.arabic {
233 list-style-type: decimal;
235 ol.loweralpha {
236 list-style-type: lower-alpha;
238 ol.upperalpha {
239 list-style-type: upper-alpha;
241 ol.lowerroman {
242 list-style-type: lower-roman;
244 ol.upperroman {
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 {
251 margin-top: 0.1em;
252 margin-bottom: 0.1em;
255 div.tableblock > table {
256 border: 3px solid #527bbd;
258 thead {
259 font-family: sans-serif;
260 font-weight: bold;
262 tfoot {
263 font-weight: bold;
265 td > div.verse {
266 white-space: pre;
268 p.table {
269 margin-top: 0;
271 /* Because the table frame attribute is overriden by CSS in most browsers. */
272 div.tableblock > table[frame="void"] {
273 border-style: none;
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;
285 div.hdlist {
286 margin-top: 0.8em;
287 margin-bottom: 0.8em;
289 div.hdlist tr {
290 padding-bottom: 15px;
292 dt.hdlist1.strong, td.hdlist1.strong {
293 font-weight: bold;
295 td.hdlist1 {
296 vertical-align: top;
297 font-style: normal;
298 padding-right: 0.8em;
299 color: navy;
301 td.hdlist2 {
302 vertical-align: top;
304 div.hdlist.compact tr {
305 margin: 0;
306 padding-bottom: 0;
309 .comment {
310 background: yellow;
313 @media print {
314 div#footer-badges { display: none; }
317 div#toctitle {
318 color: #527bbd;
319 font-family: sans-serif;
320 font-size: 1.1em;
321 font-weight: bold;
322 margin-top: 1.0em;
323 margin-bottom: 0.1em;
326 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
327 margin-top: 0;
328 margin-bottom: 0;
330 div.toclevel2 {
331 margin-left: 2em;
332 font-size: 0.9em;
334 div.toclevel3 {
335 margin-left: 4em;
336 font-size: 0.9em;
338 div.toclevel4 {
339 margin-left: 6em;
340 font-size: 0.9em;
342 /* Overrides for manpage documents */
343 h1 {
344 padding-top: 0.5em;
345 padding-bottom: 0.5em;
346 border-top: 2px solid silver;
347 border-bottom: 2px solid silver;
349 h2 {
350 border-style: none;
352 div.sectionbody {
353 margin-left: 5%;
356 @media print {
357 div#toc { display: none; }
360 /* Workarounds for IE6's broken and incomplete CSS2. */
362 div.sidebar-content {
363 background: #ffffee;
364 border: 1px solid silver;
365 padding: 0.5em;
367 div.sidebar-title, div.image-title {
368 color: #527bbd;
369 font-family: sans-serif;
370 font-weight: bold;
371 margin-top: 0.0em;
372 margin-bottom: 0.5em;
375 div.listingblock div.content {
376 border: 1px solid silver;
377 background: #f4f4f4;
378 padding: 0.5em;
381 div.quoteblock-attribution {
382 padding-top: 0.5em;
383 text-align: right;
386 div.verseblock-content {
387 white-space: pre;
389 div.verseblock-attribution {
390 padding-top: 0.75em;
391 text-align: left;
394 div.exampleblock-content {
395 border-left: 2px solid silver;
396 padding-left: 0.5em;
399 /* IE6 sets dynamically generated links as visited. */
400 div#toc a:visited { color: blue; }
401 </style>
402 </head>
403 <body>
404 <div id="header">
405 <h1>
406 git-describe(1) Manual Page
407 </h1>
408 <h2>NAME</h2>
409 <div class="sectionbody">
410 <p>git-describe -
411 Show the most recent tag that is reachable from a commit
412 </p>
413 </div>
414 </div>
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=&lt;n&gt;] &lt;committish&gt;&#8230;
419 <em>git describe</em> [--all] [--tags] [--contains] [--abbrev=&lt;n&gt;] --dirty[=&lt;mark&gt;]</div>
420 <div class="verseblock-attribution">
421 </div></div>
422 </div>
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>
433 </div>
434 <h2 id="_options">OPTIONS</h2>
435 <div class="sectionbody">
436 <div class="dlist"><dl>
437 <dt class="hdlist1">
438 &lt;committish&gt;&#8230;
439 </dt>
440 <dd>
442 Committish object names to describe.
443 </p>
444 </dd>
445 <dt class="hdlist1">
446 --dirty[=&lt;mark&gt;]
447 </dt>
448 <dd>
450 Describe the working tree.
451 It means describe HEAD and appends &lt;mark&gt; (<tt>-dirty</tt> by
452 default) if the working tree is dirty.
453 </p>
454 </dd>
455 <dt class="hdlist1">
456 --all
457 </dt>
458 <dd>
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.
463 </p>
464 </dd>
465 <dt class="hdlist1">
466 --tags
467 </dt>
468 <dd>
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.
473 </p>
474 </dd>
475 <dt class="hdlist1">
476 --contains
477 </dt>
478 <dd>
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.
483 </p>
484 </dd>
485 <dt class="hdlist1">
486 --abbrev=&lt;n&gt;
487 </dt>
488 <dd>
490 Instead of using the default 7 hexadecimal digits as the
491 abbreviated object name, use &lt;n&gt; digits, or as many digits
492 as needed to form a unique object name. An &lt;n&gt; of 0
493 will suppress long format, only showing the closest tag.
494 </p>
495 </dd>
496 <dt class="hdlist1">
497 --candidates=&lt;n&gt;
498 </dt>
499 <dd>
501 Instead of considering only the 10 most recent tags as
502 candidates to describe the input committish consider
503 up to &lt;n&gt; candidates. Increasing &lt;n&gt; above 10 will take
504 slightly longer but may produce a more accurate result.
505 An &lt;n&gt; of 0 will cause only exact matches to be output.
506 </p>
507 </dd>
508 <dt class="hdlist1">
509 --exact-match
510 </dt>
511 <dd>
513 Only output exact matches (a tag directly references the
514 supplied commit). This is a synonym for --candidates=0.
515 </p>
516 </dd>
517 <dt class="hdlist1">
518 --debug
519 </dt>
520 <dd>
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.
525 </p>
526 </dd>
527 <dt class="hdlist1">
528 --long
529 </dt>
530 <dd>
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&#8230;.).
539 </p>
540 </dd>
541 <dt class="hdlist1">
542 --match &lt;pattern&gt;
543 </dt>
544 <dd>
546 Only consider tags matching the given pattern (can be used to avoid
547 leaking private tags made from the repository).
548 </p>
549 </dd>
550 <dt class="hdlist1">
551 --always
552 </dt>
553 <dd>
555 Show uniquely abbreviated commit object as fallback.
556 </p>
557 </dd>
558 </dl></div>
559 </div>
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>
567 </div></div>
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
584 v1.0.4</tt></pre>
585 </div></div>
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>
592 </div></div>
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>
597 </div></div>
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>
604 </div></div>
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>
610 </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&#8217;s tag will be output along with an
621 abbreviation of the input committish&#8217;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>
627 </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>
631 </div>
632 <div id="footer">
633 <div id="footer-text">
634 Last updated 2011-03-15 23:30:13 UTC
635 </div>
636 </div>
637 </body>
638 </html>