Autogenerated HTML docs for v1.7.1-78-g212f0
[git/jnareb-git.git] / git-describe.html
blob7db58b5449583052ddb32fef6af9d8a0e75fbb69
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.2.5" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1, h2, h3 {
48 border-bottom: 2px solid silver;
50 h2 {
51 padding-top: 0.5em;
53 h3 {
54 float: left;
56 h3 + * {
57 clear: left;
60 div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
65 hr {
66 border: 1px solid silver;
69 p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
74 pre {
75 padding: 0;
76 margin: 0;
79 span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
83 font-size: 1.1em;
85 span#email {
87 span#revision {
88 font-family: sans-serif;
91 div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
98 div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
102 div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
107 div#preamble,
108 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110 div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
115 div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
120 div.content { /* Block element content. */
121 padding: 0;
124 /* Block element titles. */
125 div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
132 div.title + * {
133 margin-top: 0;
136 td div.title:first-child {
137 margin-top: 0.0em;
139 div.content div.title:first-child {
140 margin-top: 0.0em;
142 div.content + div.title {
143 margin-top: 0.0em;
146 div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
152 div.listingblock {
153 margin-right: 0%;
155 div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
161 div.quoteblock > div.content {
162 padding-left: 2.0em;
165 div.attribution {
166 text-align: right;
168 div.verseblock + div.attribution {
169 text-align: left;
172 div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
180 div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
185 div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
190 div.verseblock div.content {
191 white-space: pre;
194 div.imageblock div.content { padding-left: 0; }
195 div.imageblock img { border: 1px solid silver; }
196 span.image img { border-style: none; }
198 dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
202 dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
207 dd > *:first-child {
208 margin-top: 0;
211 ul, ol {
212 list-style-position: outside;
214 div.olist2 ol {
215 list-style-type: lower-alpha;
218 div.tableblock > table {
219 border: 3px solid #527bbd;
221 thead {
222 font-family: sans-serif;
223 font-weight: bold;
225 tfoot {
226 font-weight: bold;
229 div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
233 div.hlist td {
234 padding-bottom: 5px;
236 td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
241 td.hlist2 {
242 vertical-align: top;
245 @media print {
246 div#footer-badges { display: none; }
249 div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
258 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
262 div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
266 div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
270 div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
274 include1::./stylesheets/xhtml11-manpage.css[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
282 div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
289 div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
295 div.quoteblock-content {
296 padding-left: 2.0em;
299 div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc a:visited { color: blue; }
306 </style>
307 <title>git-describe(1)</title>
308 </head>
309 <body>
310 <div id="header">
311 <h1>
312 git-describe(1) Manual Page
313 </h1>
314 <h2>NAME</h2>
315 <div class="sectionbody">
316 <p>git-describe -
317 Show the most recent tag that is reachable from a commit
318 </p>
319 </div>
320 </div>
321 <h2>SYNOPSIS</h2>
322 <div class="sectionbody">
323 <div class="verseblock">
324 <div class="content"><em>git describe</em> [--all] [--tags] [--contains] [--abbrev=&lt;n&gt;] &lt;committish&gt;&#8230;
325 <em>git describe</em> [--all] [--tags] [--contains] [--abbrev=&lt;n&gt;] --dirty[=&lt;mark&gt;]</div></div>
326 </div>
327 <h2 id="_description">DESCRIPTION</h2>
328 <div class="sectionbody">
329 <div class="para"><p>The command finds the most recent tag that is reachable from a
330 commit. If the tag points to the commit, then only the tag is
331 shown. Otherwise, it suffixes the tag name with the number of
332 additional commits on top of the tagged object and the
333 abbreviated object name of the most recent commit.</p></div>
334 <div class="para"><p>By default (without --all or --tags) <tt>git describe</tt> only shows
335 annotated tags. For more information about creating annotated tags
336 see the -a and -s options to <a href="git-tag.html">git-tag(1)</a>.</p></div>
337 </div>
338 <h2 id="_options">OPTIONS</h2>
339 <div class="sectionbody">
340 <div class="vlist"><dl>
341 <dt>
342 &lt;committish&gt;&#8230;
343 </dt>
344 <dd>
346 Committish object names to describe.
347 </p>
348 </dd>
349 <dt>
350 --dirty[=&lt;mark&gt;]
351 </dt>
352 <dd>
354 Describe the working tree.
355 It means describe HEAD and appends &lt;mark&gt; (<tt>-dirty</tt> by
356 default) if the working tree is dirty.
357 </p>
358 </dd>
359 <dt>
360 --all
361 </dt>
362 <dd>
364 Instead of using only the annotated tags, use any ref
365 found in <tt>.git/refs/</tt>. This option enables matching
366 any known branch, remote branch, or lightweight tag.
367 </p>
368 </dd>
369 <dt>
370 --tags
371 </dt>
372 <dd>
374 Instead of using only the annotated tags, use any tag
375 found in <tt>.git/refs/tags</tt>. This option enables matching
376 a lightweight (non-annotated) tag.
377 </p>
378 </dd>
379 <dt>
380 --contains
381 </dt>
382 <dd>
384 Instead of finding the tag that predates the commit, find
385 the tag that comes after the commit, and thus contains it.
386 Automatically implies --tags.
387 </p>
388 </dd>
389 <dt>
390 --abbrev=&lt;n&gt;
391 </dt>
392 <dd>
394 Instead of using the default 7 hexadecimal digits as the
395 abbreviated object name, use &lt;n&gt; digits, or as many digits
396 as needed to form a unique object name. An &lt;n&gt; of 0
397 will suppress long format, only showing the closest tag.
398 </p>
399 </dd>
400 <dt>
401 --candidates=&lt;n&gt;
402 </dt>
403 <dd>
405 Instead of considering only the 10 most recent tags as
406 candidates to describe the input committish consider
407 up to &lt;n&gt; candidates. Increasing &lt;n&gt; above 10 will take
408 slightly longer but may produce a more accurate result.
409 An &lt;n&gt; of 0 will cause only exact matches to be output.
410 </p>
411 </dd>
412 <dt>
413 --exact-match
414 </dt>
415 <dd>
417 Only output exact matches (a tag directly references the
418 supplied commit). This is a synonym for --candidates=0.
419 </p>
420 </dd>
421 <dt>
422 --debug
423 </dt>
424 <dd>
426 Verbosely display information about the searching strategy
427 being employed to standard error. The tag name will still
428 be printed to standard out.
429 </p>
430 </dd>
431 <dt>
432 --long
433 </dt>
434 <dd>
436 Always output the long format (the tag, the number of commits
437 and the abbreviated commit name) even when it matches a tag.
438 This is useful when you want to see parts of the commit object name
439 in "describe" output, even when the commit in question happens to be
440 a tagged version. Instead of just emitting the tag name, it will
441 describe such a commit as v1.2-0-gdeadbee (0th commit since tag v1.2
442 that points at object deadbee&#8230;.).
443 </p>
444 </dd>
445 <dt>
446 --match &lt;pattern&gt;
447 </dt>
448 <dd>
450 Only consider tags matching the given pattern (can be used to avoid
451 leaking private tags made from the repository).
452 </p>
453 </dd>
454 <dt>
455 --always
456 </dt>
457 <dd>
459 Show uniquely abbreviated commit object as fallback.
460 </p>
461 </dd>
462 </dl></div>
463 </div>
464 <h2 id="_examples">EXAMPLES</h2>
465 <div class="sectionbody">
466 <div class="para"><p>With something like git.git current tree, I get:</p></div>
467 <div class="literalblock">
468 <div class="content">
469 <pre><tt>[torvalds@g5 git]$ git describe parent
470 v1.0.4-14-g2414721</tt></pre>
471 </div></div>
472 <div class="para"><p>i.e. the current head of my "parent" branch is based on v1.0.4,
473 but since it has a few commits on top of that,
474 describe has added the number of additional commits ("14") and
475 an abbreviated object name for the commit itself ("2414721")
476 at the end.</p></div>
477 <div class="para"><p>The number of additional commits is the number
478 of commits which would be displayed by "git log v1.0.4..parent".
479 The hash suffix is "-g" + 7-char abbreviation for the tip commit
480 of parent (which was <tt>2414721b194453f058079d897d13c4e377f92dc6</tt>).
481 The "g" prefix stands for "git" and is used to allow describing the version of
482 a software depending on the SCM the software is managed with. This is useful
483 in an environment where people may use different SCMs.</p></div>
484 <div class="para"><p>Doing a <em>git describe</em> on a tag-name will just show the tag name:</p></div>
485 <div class="literalblock">
486 <div class="content">
487 <pre><tt>[torvalds@g5 git]$ git describe v1.0.4
488 v1.0.4</tt></pre>
489 </div></div>
490 <div class="para"><p>With --all, the command can use branch heads as references, so
491 the output shows the reference path as well:</p></div>
492 <div class="literalblock">
493 <div class="content">
494 <pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2
495 tags/v1.0.0-21-g975b</tt></pre>
496 </div></div>
497 <div class="literalblock">
498 <div class="content">
499 <pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^
500 heads/lt/describe-7-g975b</tt></pre>
501 </div></div>
502 <div class="para"><p>With --abbrev set to 0, the command can be used to find the
503 closest tagname without any suffix:</p></div>
504 <div class="literalblock">
505 <div class="content">
506 <pre><tt>[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2
507 tags/v1.0.0</tt></pre>
508 </div></div>
509 <div class="para"><p>Note that the suffix you get if you type these commands today may be
510 longer than what Linus saw above when he ran these commands, as your
511 git repository may have new commits whose object names begin with
512 975b that did not exist back then, and "-g975b" suffix alone may not
513 be sufficient to disambiguate these commits.</p></div>
514 </div>
515 <h2 id="_search_strategy">SEARCH STRATEGY</h2>
516 <div class="sectionbody">
517 <div class="para"><p>For each committish supplied, <em>git describe</em> will first look for
518 a tag which tags exactly that commit. Annotated tags will always
519 be preferred over lightweight tags, and tags with newer dates will
520 always be preferred over tags with older dates. If an exact match
521 is found, its name will be output and searching will stop.</p></div>
522 <div class="para"><p>If an exact match was not found, <em>git describe</em> will walk back
523 through the commit history to locate an ancestor commit which
524 has been tagged. The ancestor's tag will be output along with an
525 abbreviation of the input committish's SHA1.</p></div>
526 <div class="para"><p>If multiple tags were found during the walk then the tag which
527 has the fewest commits different from the input committish will be
528 selected and output. Here fewest commits different is defined as
529 the number of commits which would be shown by <tt>git log tag..input</tt>
530 will be the smallest number of commits possible.</p></div>
531 </div>
532 <h2 id="_author">Author</h2>
533 <div class="sectionbody">
534 <div class="para"><p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;, but somewhat
535 butchered by Junio C Hamano &lt;gitster@pobox.com&gt;. Later significantly
536 updated by Shawn Pearce &lt;spearce@spearce.org&gt;.</p></div>
537 </div>
538 <h2 id="_documentation">Documentation</h2>
539 <div class="sectionbody">
540 <div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p></div>
541 </div>
542 <h2 id="_git">GIT</h2>
543 <div class="sectionbody">
544 <div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
545 </div>
546 <div id="footer">
547 <div id="footer-text">
548 Last updated 2010-04-24 02:55:52 UTC
549 </div>
550 </div>
551 </body>
552 </html>