blob: 4bb17c7dc41ba14cbb5bd83458cd01cf344d75cc [file] [log] [blame]
Junio C Hamano1a4e8412005-12-27 08:17:231<!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" />
Junio C Hamano7bd050f2011-09-22 06:32:226<meta name="generator" content="AsciiDoc 8.5.2" />
Junio C Hamano68cf15a2010-11-06 01:01:597<title>git-rev-parse(1)</title>
Junio C Hamano1a4e8412005-12-27 08:17:238<style type="text/css">
9/* Debug borders */
10p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11/*
12 border: 1px solid red;
13*/
14}
15
16body {
17 margin: 1em 5% 1em 5%;
18}
19
Junio C Hamanoba4b9282008-07-06 05:20:3120a {
21 color: blue;
22 text-decoration: underline;
23}
24a:visited {
25 color: fuchsia;
26}
Junio C Hamano1a4e8412005-12-27 08:17:2327
28em {
29 font-style: italic;
Junio C Hamano68cf15a2010-11-06 01:01:5930 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:2331}
32
33strong {
34 font-weight: bold;
Junio C Hamano68cf15a2010-11-06 01:01:5935 color: #083194;
Junio C Hamano1a4e8412005-12-27 08:17:2336}
37
38tt {
39 color: navy;
40}
41
42h1, 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;
48}
49
Junio C Hamanoba4b9282008-07-06 05:20:3150h1, h2, h3 {
Junio C Hamano1a4e8412005-12-27 08:17:2351 border-bottom: 2px solid silver;
52}
53h2 {
Junio C Hamano1a4e8412005-12-27 08:17:2354 padding-top: 0.5em;
55}
Junio C Hamanoba4b9282008-07-06 05:20:3156h3 {
57 float: left;
58}
59h3 + * {
60 clear: left;
61}
Junio C Hamano1a4e8412005-12-27 08:17:2362
63div.sectionbody {
64 font-family: serif;
65 margin-left: 0;
66}
67
68hr {
69 border: 1px solid silver;
70}
71
72p {
73 margin-top: 0.5em;
74 margin-bottom: 0.5em;
75}
76
Junio C Hamano68cf15a2010-11-06 01:01:5977ul, ol, li > p {
78 margin-top: 0;
79}
80
Junio C Hamano1a4e8412005-12-27 08:17:2381pre {
82 padding: 0;
83 margin: 0;
84}
85
86span#author {
87 color: #527bbd;
88 font-family: sans-serif;
89 font-weight: bold;
Junio C Hamanoba4b9282008-07-06 05:20:3190 font-size: 1.1em;
Junio C Hamano1a4e8412005-12-27 08:17:2391}
92span#email {
93}
Junio C Hamano68cf15a2010-11-06 01:01:5994span#revnumber, span#revdate, span#revremark {
Junio C Hamano1a4e8412005-12-27 08:17:2395 font-family: sans-serif;
96}
97
98div#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;
104}
105div#footer-text {
106 float: left;
107 padding-bottom: 0.5em;
108}
109div#footer-badges {
110 float: right;
111 padding-bottom: 0.5em;
112}
113
Junio C Hamano68cf15a2010-11-06 01:01:59114div#preamble {
115 margin-top: 1.5em;
116 margin-bottom: 1.5em;
117}
Junio C Hamano1a4e8412005-12-27 08:17:23118div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
119div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120div.admonitionblock {
Junio C Hamano7bd050f2011-09-22 06:32:22121 margin-top: 1.0em;
Junio C Hamano1a4e8412005-12-27 08:17:23122 margin-bottom: 1.5em;
123}
124div.admonitionblock {
Junio C Hamano7bd050f2011-09-22 06:32:22125 margin-top: 2.0em;
126 margin-bottom: 2.0em;
127 margin-right: 10%;
128 color: #606060;
Junio C Hamano1a4e8412005-12-27 08:17:23129}
130
131div.content { /* Block element content. */
132 padding: 0;
133}
134
135/* Block element titles. */
136div.title, caption.title {
Junio C Hamano68cf15a2010-11-06 01:01:59137 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23138 font-family: sans-serif;
139 font-weight: bold;
140 text-align: left;
141 margin-top: 1.0em;
142 margin-bottom: 0.5em;
143}
144div.title + * {
145 margin-top: 0;
146}
147
148td div.title:first-child {
149 margin-top: 0.0em;
150}
151div.content div.title:first-child {
152 margin-top: 0.0em;
153}
154div.content + div.title {
155 margin-top: 0.0em;
156}
157
158div.sidebarblock > div.content {
159 background: #ffffee;
160 border: 1px solid silver;
161 padding: 0.5em;
162}
163
164div.listingblock > div.content {
165 border: 1px solid silver;
166 background: #f4f4f4;
167 padding: 0.5em;
168}
169
Junio C Hamano7bd050f2011-09-22 06:32:22170div.quoteblock, div.verseblock {
171 padding-left: 1.0em;
172 margin-left: 1.0em;
Junio C Hamano68cf15a2010-11-06 01:01:59173 margin-right: 10%;
Junio C Hamano7bd050f2011-09-22 06:32:22174 border-left: 5px solid #dddddd;
175 color: #777777;
Junio C Hamano1a4e8412005-12-27 08:17:23176}
Junio C Hamano7bd050f2011-09-22 06:32:22177
Junio C Hamano68cf15a2010-11-06 01:01:59178div.quoteblock > div.attribution {
179 padding-top: 0.5em;
Junio C Hamano1a4e8412005-12-27 08:17:23180 text-align: right;
181}
Junio C Hamano68cf15a2010-11-06 01:01:59182
Junio C Hamano68cf15a2010-11-06 01:01:59183div.verseblock > div.content {
184 white-space: pre;
185}
186div.verseblock > div.attribution {
187 padding-top: 0.75em;
188 text-align: left;
189}
190/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
Junio C Hamanoba4b9282008-07-06 05:20:31191div.verseblock + div.attribution {
192 text-align: left;
193}
Junio C Hamano1a4e8412005-12-27 08:17:23194
195div.admonitionblock .icon {
196 vertical-align: top;
197 font-size: 1.1em;
198 font-weight: bold;
199 text-decoration: underline;
200 color: #527bbd;
201 padding-right: 0.5em;
202}
203div.admonitionblock td.content {
204 padding-left: 0.5em;
Junio C Hamano7bd050f2011-09-22 06:32:22205 border-left: 3px solid #dddddd;
Junio C Hamano1a4e8412005-12-27 08:17:23206}
207
208div.exampleblock > div.content {
Junio C Hamano7bd050f2011-09-22 06:32:22209 border-left: 3px solid #dddddd;
210 padding-left: 0.5em;
Junio C Hamano1a4e8412005-12-27 08:17:23211}
212
Junio C Hamano1a4e8412005-12-27 08:17:23213div.imageblock div.content { padding-left: 0; }
Junio C Hamano1a4e8412005-12-27 08:17:23214span.image img { border-style: none; }
Junio C Hamano68cf15a2010-11-06 01:01:59215a.image:visited { color: white; }
Junio C Hamano1a4e8412005-12-27 08:17:23216
217dl {
218 margin-top: 0.8em;
219 margin-bottom: 0.8em;
220}
221dt {
222 margin-top: 0.5em;
223 margin-bottom: 0;
Junio C Hamano68cf15a2010-11-06 01:01:59224 font-style: normal;
225 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:23226}
227dd > *:first-child {
Junio C Hamano68cf15a2010-11-06 01:01:59228 margin-top: 0.1em;
Junio C Hamano1a4e8412005-12-27 08:17:23229}
230
231ul, ol {
232 list-style-position: outside;
233}
Junio C Hamano68cf15a2010-11-06 01:01:59234ol.arabic {
235 list-style-type: decimal;
236}
237ol.loweralpha {
Junio C Hamano1a4e8412005-12-27 08:17:23238 list-style-type: lower-alpha;
239}
Junio C Hamano68cf15a2010-11-06 01:01:59240ol.upperalpha {
241 list-style-type: upper-alpha;
242}
243ol.lowerroman {
244 list-style-type: lower-roman;
245}
246ol.upperroman {
247 list-style-type: upper-roman;
248}
249
250div.compact ul, div.compact ol,
251div.compact p, div.compact p,
252div.compact div, div.compact div {
253 margin-top: 0.1em;
254 margin-bottom: 0.1em;
255}
Junio C Hamano1a4e8412005-12-27 08:17:23256
257div.tableblock > table {
Junio C Hamanoba4b9282008-07-06 05:20:31258 border: 3px solid #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23259}
Junio C Hamano7bd050f2011-09-22 06:32:22260thead, p.table.header {
Junio C Hamano1a4e8412005-12-27 08:17:23261 font-family: sans-serif;
262 font-weight: bold;
263}
264tfoot {
265 font-weight: bold;
266}
Junio C Hamano68cf15a2010-11-06 01:01:59267td > div.verse {
268 white-space: pre;
269}
270p.table {
271 margin-top: 0;
272}
273/* Because the table frame attribute is overriden by CSS in most browsers. */
274div.tableblock > table[frame="void"] {
275 border-style: none;
276}
277div.tableblock > table[frame="hsides"] {
278 border-left-style: none;
279 border-right-style: none;
280}
281div.tableblock > table[frame="vsides"] {
282 border-top-style: none;
283 border-bottom-style: none;
284}
Junio C Hamano1a4e8412005-12-27 08:17:23285
Junio C Hamano68cf15a2010-11-06 01:01:59286
287div.hdlist {
Junio C Hamano1a4e8412005-12-27 08:17:23288 margin-top: 0.8em;
289 margin-bottom: 0.8em;
290}
Junio C Hamano68cf15a2010-11-06 01:01:59291div.hdlist tr {
292 padding-bottom: 15px;
Junio C Hamanoba4b9282008-07-06 05:20:31293}
Junio C Hamano68cf15a2010-11-06 01:01:59294dt.hdlist1.strong, td.hdlist1.strong {
295 font-weight: bold;
296}
297td.hdlist1 {
Junio C Hamano1a4e8412005-12-27 08:17:23298 vertical-align: top;
Junio C Hamano68cf15a2010-11-06 01:01:59299 font-style: normal;
Junio C Hamano1a4e8412005-12-27 08:17:23300 padding-right: 0.8em;
Junio C Hamano68cf15a2010-11-06 01:01:59301 color: navy;
Junio C Hamano1a4e8412005-12-27 08:17:23302}
Junio C Hamano68cf15a2010-11-06 01:01:59303td.hdlist2 {
Junio C Hamano1a4e8412005-12-27 08:17:23304 vertical-align: top;
305}
Junio C Hamano68cf15a2010-11-06 01:01:59306div.hdlist.compact tr {
307 margin: 0;
308 padding-bottom: 0;
309}
310
311.comment {
312 background: yellow;
313}
Junio C Hamano1a4e8412005-12-27 08:17:23314
Junio C Hamano7bd050f2011-09-22 06:32:22315.footnote, .footnoteref {
316 font-size: 0.8em;
317}
318
319span.footnote, span.footnoteref {
320 vertical-align: super;
321}
322
323#footnotes {
324 margin: 20px 0 20px 0;
325 padding: 7px 0 0 0;
326}
327
328#footnotes div.footnote {
329 margin: 0 0 5px 0;
330}
331
332#footnotes hr {
333 border: none;
334 border-top: 1px solid silver;
335 height: 1px;
336 text-align: left;
337 margin-left: 0;
338 width: 20%;
339 min-width: 100px;
340}
341
342
Junio C Hamano1a4e8412005-12-27 08:17:23343@media print {
344 div#footer-badges { display: none; }
345}
Junio C Hamanoba4b9282008-07-06 05:20:31346
Junio C Hamano7bd050f2011-09-22 06:32:22347div#toc {
348 margin-bottom: 2.5em;
349}
350
Junio C Hamanoba4b9282008-07-06 05:20:31351div#toctitle {
352 color: #527bbd;
353 font-family: sans-serif;
354 font-size: 1.1em;
355 font-weight: bold;
356 margin-top: 1.0em;
357 margin-bottom: 0.1em;
358}
359
360div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
361 margin-top: 0;
362 margin-bottom: 0;
363}
364div.toclevel2 {
365 margin-left: 2em;
366 font-size: 0.9em;
367}
368div.toclevel3 {
369 margin-left: 4em;
370 font-size: 0.9em;
371}
372div.toclevel4 {
373 margin-left: 6em;
374 font-size: 0.9em;
375}
Junio C Hamano68cf15a2010-11-06 01:01:59376/* Overrides for manpage documents */
377h1 {
378 padding-top: 0.5em;
379 padding-bottom: 0.5em;
380 border-top: 2px solid silver;
381 border-bottom: 2px solid silver;
382}
383h2 {
384 border-style: none;
385}
386div.sectionbody {
387 margin-left: 5%;
388}
389
390@media print {
391 div#toc { display: none; }
392}
393
Junio C Hamano1a4e8412005-12-27 08:17:23394/* Workarounds for IE6's broken and incomplete CSS2. */
395
396div.sidebar-content {
397 background: #ffffee;
398 border: 1px solid silver;
399 padding: 0.5em;
400}
401div.sidebar-title, div.image-title {
Junio C Hamano68cf15a2010-11-06 01:01:59402 color: #527bbd;
Junio C Hamano1a4e8412005-12-27 08:17:23403 font-family: sans-serif;
404 font-weight: bold;
405 margin-top: 0.0em;
406 margin-bottom: 0.5em;
407}
408
409div.listingblock div.content {
410 border: 1px solid silver;
411 background: #f4f4f4;
412 padding: 0.5em;
413}
414
Junio C Hamano68cf15a2010-11-06 01:01:59415div.quoteblock-attribution {
416 padding-top: 0.5em;
417 text-align: right;
418}
419
420div.verseblock-content {
421 white-space: pre;
422}
423div.verseblock-attribution {
424 padding-top: 0.75em;
425 text-align: left;
Junio C Hamano1a4e8412005-12-27 08:17:23426}
427
428div.exampleblock-content {
Junio C Hamano7bd050f2011-09-22 06:32:22429 border-left: 3px solid #dddddd;
Junio C Hamano1a4e8412005-12-27 08:17:23430 padding-left: 0.5em;
431}
Junio C Hamanoba4b9282008-07-06 05:20:31432
433/* IE6 sets dynamically generated links as visited. */
434div#toc a:visited { color: blue; }
Junio C Hamano1a4e8412005-12-27 08:17:23435</style>
Junio C Hamano7bd050f2011-09-22 06:32:22436<script type="text/javascript">
437/*<![CDATA[*/
438window.onload = function(){asciidoc.footnotes();}
439var asciidoc = { // Namespace.
440
441/////////////////////////////////////////////////////////////////////
442// Table Of Contents generator
443/////////////////////////////////////////////////////////////////////
444
445/* Author: Mihai Bazon, September 2002
446 * http://students.infoiasi.ro/~mishoo
447 *
448 * Table Of Content generator
449 * Version: 0.4
450 *
451 * Feel free to use this script under the terms of the GNU General Public
452 * License, as long as you do not remove or alter this notice.
453 */
454
455 /* modified by Troy D. Hanson, September 2006. License: GPL */
456 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
457
458// toclevels = 1..4.
459toc: function (toclevels) {
460
461 function getText(el) {
462 var text = "";
463 for (var i = el.firstChild; i != null; i = i.nextSibling) {
464 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
465 text += i.data;
466 else if (i.firstChild != null)
467 text += getText(i);
468 }
469 return text;
470 }
471
472 function TocEntry(el, text, toclevel) {
473 this.element = el;
474 this.text = text;
475 this.toclevel = toclevel;
476 }
477
478 function tocEntries(el, toclevels) {
479 var result = new Array;
480 var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
481 // Function that scans the DOM tree for header elements (the DOM2
482 // nodeIterator API would be a better technique but not supported by all
483 // browsers).
484 var iterate = function (el) {
485 for (var i = el.firstChild; i != null; i = i.nextSibling) {
486 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
487 var mo = re.exec(i.tagName);
488 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
489 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
490 }
491 iterate(i);
492 }
493 }
494 }
495 iterate(el);
496 return result;
497 }
498
499 var toc = document.getElementById("toc");
500 var entries = tocEntries(document.getElementById("content"), toclevels);
501 for (var i = 0; i < entries.length; ++i) {
502 var entry = entries[i];
503 if (entry.element.id == "")
504 entry.element.id = "_toc_" + i;
505 var a = document.createElement("a");
506 a.href = "#" + entry.element.id;
507 a.appendChild(document.createTextNode(entry.text));
508 var div = document.createElement("div");
509 div.appendChild(a);
510 div.className = "toclevel" + entry.toclevel;
511 toc.appendChild(div);
512 }
513 if (entries.length == 0)
514 toc.parentNode.removeChild(toc);
515},
516
517
518/////////////////////////////////////////////////////////////////////
519// Footnotes generator
520/////////////////////////////////////////////////////////////////////
521
522/* Based on footnote generation code from:
523 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
524 */
525
526footnotes: function () {
527 var cont = document.getElementById("content");
528 var noteholder = document.getElementById("footnotes");
529 var spans = cont.getElementsByTagName("span");
530 var refs = {};
531 var n = 0;
532 for (i=0; i<spans.length; i++) {
533 if (spans[i].className == "footnote") {
534 n++;
535 // Use [\s\S] in place of . so multi-line matches work.
536 // Because JavaScript has no s (dotall) regex flag.
537 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
538 noteholder.innerHTML +=
539 "<div class='footnote' id='_footnote_" + n + "'>" +
540 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
541 n + "</a>. " + note + "</div>";
542 spans[i].innerHTML =
543 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
544 "' title='View footnote' class='footnote'>" + n + "</a>]";
545 var id =spans[i].getAttribute("id");
546 if (id != null) refs["#"+id] = n;
547 }
548 }
549 if (n == 0)
550 noteholder.parentNode.removeChild(noteholder);
551 else {
552 // Process footnoterefs.
553 for (i=0; i<spans.length; i++) {
554 if (spans[i].className == "footnoteref") {
555 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
556 href = href.match(/#.*/)[0]; // Because IE return full URL.
557 n = refs[href];
558 spans[i].innerHTML =
559 "[<a href='#_footnote_" + n +
560 "' title='View footnote' class='footnote'>" + n + "</a>]";
561 }
562 }
563 }
564}
565
566}
567/*]]>*/
568</script>
Junio C Hamano1a4e8412005-12-27 08:17:23569</head>
570<body>
571<div id="header">
572<h1>
573git-rev-parse(1) Manual Page
574</h1>
575<h2>NAME</h2>
576<div class="sectionbody">
577<p>git-rev-parse -
Junio C Hamano01078922006-03-10 00:31:47578 Pick out and massage parameters
Junio C Hamano1a4e8412005-12-27 08:17:23579</p>
580</div>
581</div>
Junio C Hamano7bd050f2011-09-22 06:32:22582<div id="content">
Junio C Hamano68cf15a2010-11-06 01:01:59583<h2 id="_synopsis">SYNOPSIS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23584<div class="sectionbody">
Junio C Hamano15567bc2011-07-23 00:51:59585<div class="verseblock">
586<div class="verseblock-content"><em>git rev-parse</em> [ --option ] &lt;args&gt;&#8230;</div>
587<div class="verseblock-attribution">
588</div></div>
Junio C Hamano1a4e8412005-12-27 08:17:23589</div>
Junio C Hamanoba4b9282008-07-06 05:20:31590<h2 id="_description">DESCRIPTION</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23591<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59592<div class="paragraph"><p>Many git porcelainish commands take mixture of flags
Junio C Hamano1a4e8412005-12-27 08:17:23593(i.e. parameters that begin with a dash <em>-</em>) and parameters
Junio C Hamano1aa40d22010-01-21 17:46:43594meant for the underlying <em>git rev-list</em> command they use internally
Junio C Hamanofce7c7e2008-07-02 03:06:38595and flags and parameters for the other commands they use
Junio C Hamano1aa40d22010-01-21 17:46:43596downstream of <em>git rev-list</em>. This command is used to
Junio C Hamanoba4b9282008-07-06 05:20:31597distinguish between them.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:23598</div>
Junio C Hamanoba4b9282008-07-06 05:20:31599<h2 id="_options">OPTIONS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23600<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59601<div class="dlist"><dl>
602<dt class="hdlist1">
Junio C Hamanoe1258662007-11-19 05:03:19603--parseopt
604</dt>
605<dd>
606<p>
Junio C Hamano1aa40d22010-01-21 17:46:43607 Use <em>git rev-parse</em> in option parsing mode (see PARSEOPT section below).
Junio C Hamanoe1258662007-11-19 05:03:19608</p>
609</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59610<dt class="hdlist1">
Junio C Hamanoa9499de2009-04-30 03:38:48611--keep-dashdash
Junio C Hamanoe1258662007-11-19 05:03:19612</dt>
613<dd>
614<p>
615 Only meaningful in <tt>--parseopt</tt> mode. Tells the option parser to echo
616 out the first <tt>--</tt> met instead of skipping it.
617</p>
618</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59619<dt class="hdlist1">
Junio C Hamanoccc4d372009-07-06 18:05:38620--stop-at-non-option
621</dt>
622<dd>
623<p>
624 Only meaningful in <tt>--parseopt</tt> mode. Lets the option parser stop at
625 the first non-option argument. This can be used to parse sub-commands
Junio C Hamano167b1382010-01-31 23:04:31626 that take options themselves.
Junio C Hamanoccc4d372009-07-06 18:05:38627</p>
628</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59629<dt class="hdlist1">
Junio C Hamano7ae18252009-05-23 09:53:32630--sq-quote
631</dt>
632<dd>
633<p>
Junio C Hamano1aa40d22010-01-21 17:46:43634 Use <em>git rev-parse</em> in shell quoting mode (see SQ-QUOTE
Junio C Hamano7ae18252009-05-23 09:53:32635 section below). In contrast to the <tt>--sq</tt> option below, this
636 mode does only quoting. Nothing else is done to command input.
637</p>
638</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59639<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23640--revs-only
641</dt>
642<dd>
643<p>
644 Do not output flags and parameters not meant for
Junio C Hamano1aa40d22010-01-21 17:46:43645 <em>git rev-list</em> command.
Junio C Hamano1a4e8412005-12-27 08:17:23646</p>
647</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59648<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23649--no-revs
650</dt>
651<dd>
652<p>
653 Do not output flags and parameters meant for
Junio C Hamano1aa40d22010-01-21 17:46:43654 <em>git rev-list</em> command.
Junio C Hamano1a4e8412005-12-27 08:17:23655</p>
656</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59657<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23658--flags
659</dt>
660<dd>
661<p>
662 Do not output non-flag parameters.
663</p>
664</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59665<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23666--no-flags
667</dt>
668<dd>
669<p>
670 Do not output flag parameters.
671</p>
672</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59673<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23674--default &lt;arg&gt;
675</dt>
676<dd>
677<p>
678 If there is no parameter given by the user, use <tt>&lt;arg&gt;</tt>
679 instead.
680</p>
681</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59682<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23683--verify
684</dt>
685<dd>
686<p>
687 The parameter given must be usable as a single, valid
688 object name. Otherwise barf and abort.
689</p>
690</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59691<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47692-q
693</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59694<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47695--quiet
Junio C Hamano9ab87672008-04-28 08:40:29696</dt>
697<dd>
698<p>
699 Only meaningful in <tt>--verify</tt> mode. Do not output an error
700 message if the first argument is not a valid object name;
701 instead exit with non-zero status silently.
702</p>
703</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59704<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23705--sq
706</dt>
707<dd>
708<p>
709 Usually the output is made one line per flag and
710 parameter. This option makes output a single line,
711 properly quoted for consumption by shell. Useful when
712 you expect your parameter to contain whitespaces and
713 newlines (e.g. when using pickaxe <tt>-S</tt> with
Junio C Hamano2db3e752010-09-03 21:33:06714 <em>git diff-&#42;</em>). In contrast to the <tt>--sq-quote</tt> option,
Junio C Hamano7ae18252009-05-23 09:53:32715 the command input is still interpreted as usual.
Junio C Hamano1a4e8412005-12-27 08:17:23716</p>
717</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59718<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23719--not
720</dt>
721<dd>
722<p>
Junio C Hamano6926bef2007-06-16 09:54:05723 When showing object names, prefix them with <em>&#94;</em> and
724 strip <em>&#94;</em> prefix from the object names that already have
Junio C Hamano1a4e8412005-12-27 08:17:23725 one.
726</p>
727</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59728<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23729--symbolic
730</dt>
731<dd>
732<p>
733 Usually the object names are output in SHA1 form (with
Junio C Hamano6926bef2007-06-16 09:54:05734 possible <em>&#94;</em> prefix); this option makes them output in a
Junio C Hamano1a4e8412005-12-27 08:17:23735 form as close to the original input as possible.
736</p>
737</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59738<dt class="hdlist1">
Junio C Hamano35738e82008-01-07 07:55:46739--symbolic-full-name
740</dt>
741<dd>
742<p>
743 This is similar to --symbolic, but it omits input that
744 are not refs (i.e. branch or tag names; or more
745 explicitly disambiguating "heads/master" form, when you
746 want to name the "master" branch when there is an
747 unfortunately named tag "master"), and show them as full
748 refnames (e.g. "refs/heads/master").
749</p>
750</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59751<dt class="hdlist1">
Junio C Hamanod2179ef2010-10-22 04:12:17752--abbrev-ref[=(strict|loose)]
Junio C Hamano3bd66e92009-04-18 06:17:56753</dt>
754<dd>
755<p>
756 A non-ambiguous short name of the objects name.
757 The option core.warnAmbiguousRefs is used to select the strict
758 abbreviation mode.
759</p>
760</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59761<dt class="hdlist1">
Junio C Hamanobb300642012-07-22 21:09:14762--disambiguate=&lt;prefix&gt;
763</dt>
764<dd>
765<p>
766 Show every object whose name begins with the given prefix.
767 The &lt;prefix&gt; must be at least 4 hexadecimal digits long to
768 avoid listing each and every object in the repository by
769 mistake.
770</p>
771</dd>
772<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23773--all
774</dt>
775<dd>
776<p>
Junio C Hamano4fdccb22010-02-19 09:58:14777 Show all refs found in <tt>refs/</tt>.
Junio C Hamano1a4e8412005-12-27 08:17:23778</p>
779</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59780<dt class="hdlist1">
Junio C Hamano57827fb2010-01-23 03:02:50781--branches[=pattern]
782</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59783<dt class="hdlist1">
Junio C Hamano57827fb2010-01-23 03:02:50784--tags[=pattern]
785</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59786<dt class="hdlist1">
Junio C Hamano57827fb2010-01-23 03:02:50787--remotes[=pattern]
Junio C Hamano6959c6c2006-05-17 10:34:11788</dt>
789<dd>
790<p>
Junio C Hamano57827fb2010-01-23 03:02:50791 Show all branches, tags, or remote-tracking branches,
Junio C Hamano4fdccb22010-02-19 09:58:14792 respectively (i.e., refs found in <tt>refs/heads</tt>,
793 <tt>refs/tags</tt>, or <tt>refs/remotes</tt>, respectively).
Junio C Hamano6959c6c2006-05-17 10:34:11794</p>
Junio C Hamano68cf15a2010-11-06 01:01:59795<div class="paragraph"><p>If a <tt>pattern</tt> is given, only refs matching the given shell glob are
Junio C Hamano57827fb2010-01-23 03:02:50796shown. If the pattern does not contain a globbing character (<tt>?</tt>,
Junio C Hamanob76a6862012-05-02 22:02:46797<tt>*</tt>, or <tt>[</tt>), it is turned into a prefix match by appending <tt>/*</tt>.</p></div>
Junio C Hamano6959c6c2006-05-17 10:34:11798</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59799<dt class="hdlist1">
Junio C Hamano57827fb2010-01-23 03:02:50800--glob=pattern
Junio C Hamano6959c6c2006-05-17 10:34:11801</dt>
802<dd>
803<p>
Junio C Hamano57827fb2010-01-23 03:02:50804 Show all refs matching the shell glob pattern <tt>pattern</tt>. If
805 the pattern does not start with <tt>refs/</tt>, this is automatically
806 prepended. If the pattern does not contain a globbing
Junio C Hamanob76a6862012-05-02 22:02:46807 character (<tt>?</tt>, <tt>*</tt>, or <tt>[</tt>), it is turned into a prefix
808 match by appending <tt>/*</tt>.
Junio C Hamano6959c6c2006-05-17 10:34:11809</p>
810</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59811<dt class="hdlist1">
Junio C Hamanoa9701f02010-01-21 00:42:16812--show-toplevel
813</dt>
814<dd>
815<p>
816 Show the absolute path of the top-level directory.
817</p>
818</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59819<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23820--show-prefix
821</dt>
822<dd>
823<p>
824 When the command is invoked from a subdirectory, show the
825 path of the current directory relative to the top-level
826 directory.
827</p>
828</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59829<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23830--show-cdup
831</dt>
832<dd>
833<p>
834 When the command is invoked from a subdirectory, show the
835 path of the top-level directory relative to the current
836 directory (typically a sequence of "../", or an empty string).
837</p>
838</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59839<dt class="hdlist1">
Junio C Hamanoe246e3b2006-02-19 08:45:18840--git-dir
841</dt>
842<dd>
843<p>
Junio C Hamano3609b332010-12-29 01:34:52844 Show <tt>$GIT_DIR</tt> if defined. Otherwise show the path to
Junio C Hamano35cd2a82012-05-23 22:01:13845 the .git directory. The path shown, when relative, is
846 relative to the current working directory.
Junio C Hamanoe246e3b2006-02-19 08:45:18847</p>
Junio C Hamano3609b332010-12-29 01:34:52848<div class="paragraph"><p>If <tt>$GIT_DIR</tt> is not defined and the current directory
849is not detected to lie in a git repository or work tree
850print a message to stderr and exit with nonzero status.</p></div>
Junio C Hamanoe246e3b2006-02-19 08:45:18851</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59852<dt class="hdlist1">
Junio C Hamanoee695f22007-06-21 00:35:36853--is-inside-git-dir
854</dt>
855<dd>
856<p>
Junio C Hamanod526ba92007-07-02 00:17:42857 When the current working directory is below the repository
858 directory print "true", otherwise "false".
859</p>
860</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59861<dt class="hdlist1">
Junio C Hamanod526ba92007-07-02 00:17:42862--is-inside-work-tree
863</dt>
864<dd>
865<p>
866 When the current working directory is inside the work tree of the
867 repository print "true", otherwise "false".
868</p>
869</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59870<dt class="hdlist1">
Junio C Hamanod526ba92007-07-02 00:17:42871--is-bare-repository
872</dt>
873<dd>
874<p>
875 When the repository is bare print "true", otherwise "false".
Junio C Hamanoee695f22007-06-21 00:35:36876</p>
877</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59878<dt class="hdlist1">
Junio C Hamano636c8b22010-03-07 22:25:17879--local-env-vars
880</dt>
881<dd>
882<p>
883 List the GIT_* environment variables that are local to the
884 repository (e.g. GIT_DIR or GIT_WORK_TREE, but not GIT_EDITOR).
885 Only the names of the variables are listed, not their value,
886 even if they are set.
887</p>
888</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59889<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47890--short
891</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59892<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47893--short=number
Junio C Hamanoe246e3b2006-02-19 08:45:18894</dt>
895<dd>
896<p>
897 Instead of outputting the full SHA1 values of object names try to
Junio C Hamano341071d2006-06-04 07:24:48898 abbreviate them to a shorter unique name. When no length is specified
Junio C Hamanoe246e3b2006-02-19 08:45:18899 7 is used. The minimum length is 4.
900</p>
901</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59902<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47903--since=datestring
904</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59905<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47906--after=datestring
Junio C Hamano1a4e8412005-12-27 08:17:23907</dt>
908<dd>
909<p>
Junio C Hamanofce7c7e2008-07-02 03:06:38910 Parse the date string, and output the corresponding
Junio C Hamano1aa40d22010-01-21 17:46:43911 --max-age= parameter for <em>git rev-list</em>.
Junio C Hamano1a4e8412005-12-27 08:17:23912</p>
913</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59914<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47915--until=datestring
916</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59917<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47918--before=datestring
Junio C Hamano1a4e8412005-12-27 08:17:23919</dt>
920<dd>
921<p>
Junio C Hamanofce7c7e2008-07-02 03:06:38922 Parse the date string, and output the corresponding
Junio C Hamano1aa40d22010-01-21 17:46:43923 --min-age= parameter for <em>git rev-list</em>.
Junio C Hamano1a4e8412005-12-27 08:17:23924</p>
925</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59926<dt class="hdlist1">
Junio C Hamano1a4e8412005-12-27 08:17:23927&lt;args&gt;&#8230;
928</dt>
929<dd>
930<p>
931 Flags and parameters to be parsed.
932</p>
933</dd>
Junio C Hamano58700662011-10-10 23:42:27934<dt class="hdlist1">
935--resolve-git-dir &lt;path&gt;
936</dt>
937<dd>
938<p>
939 Check if &lt;path&gt; is a valid git-dir or a git-file pointing to a valid
940 git-dir. If &lt;path&gt; is a valid git-dir the resolved path to git-dir will
941 be printed.
942</p>
943</dd>
Junio C Hamanoba4b9282008-07-06 05:20:31944</dl></div>
Junio C Hamano1a4e8412005-12-27 08:17:23945</div>
Junio C Hamanoba4b9282008-07-06 05:20:31946<h2 id="_specifying_revisions">SPECIFYING REVISIONS</h2>
Junio C Hamano1a4e8412005-12-27 08:17:23947<div class="sectionbody">
Junio C Hamanoee3adc32011-04-06 19:53:38948<div class="paragraph"><p>A revision parameter <em>&lt;rev&gt;</em> typically, but not necessarily, names a
949commit object. It uses what is called an <em>extended SHA1</em>
Junio C Hamanofbe00522006-10-19 05:58:48950syntax. Here are various ways to spell object names. The
Junio C Hamanoee3adc32011-04-06 19:53:38951ones listed near the end of this list name trees and
Junio C Hamanoba4b9282008-07-06 05:20:31952blobs contained in a commit.</p></div>
Junio C Hamanoee3adc32011-04-06 19:53:38953<div class="dlist"><dl>
954<dt class="hdlist1">
955<em>&lt;sha1&gt;</em>, e.g. <em>dae86e1950b1277e545cee180551750029cfe735</em>, <em>dae86e</em>
956</dt>
957<dd>
Junio C Hamano1a4e8412005-12-27 08:17:23958<p>
Junio C Hamanoee3adc32011-04-06 19:53:38959 The full SHA1 object name (40-byte hexadecimal string), or
960 a leading substring that is unique within the repository.
Junio C Hamano1a4e8412005-12-27 08:17:23961 E.g. dae86e1950b1277e545cee180551750029cfe735 and dae86e both
Junio C Hamanoee3adc32011-04-06 19:53:38962 name the same commit object if there is no other object in
Junio C Hamano1a4e8412005-12-27 08:17:23963 your repository whose object name starts with dae86e.
964</p>
Junio C Hamanoee3adc32011-04-06 19:53:38965</dd>
966<dt class="hdlist1">
967<em>&lt;describeOutput&gt;</em>, e.g. <em>v1.7.4.2-679-g3bee7fb</em>
968</dt>
969<dd>
Junio C Hamano1a4e8412005-12-27 08:17:23970<p>
Junio C Hamanoee3adc32011-04-06 19:53:38971 Output from <tt>git describe</tt>; i.e. a closest tag, optionally
Junio C Hamano7f80ae82008-07-30 18:31:35972 followed by a dash and a number of commits, followed by a dash, a
Junio C Hamanoee3adc32011-04-06 19:53:38973 <em>g</em>, and an abbreviated object name.
Junio C Hamanofbe00522006-10-19 05:58:48974</p>
Junio C Hamanoee3adc32011-04-06 19:53:38975</dd>
976<dt class="hdlist1">
977<em>&lt;refname&gt;</em>, e.g. <em>master</em>, <em>heads/master</em>, <em>refs/heads/master</em>
978</dt>
979<dd>
Junio C Hamanofbe00522006-10-19 05:58:48980<p>
Junio C Hamanoee3adc32011-04-06 19:53:38981 A symbolic ref name. E.g. <em>master</em> typically means the commit
982 object referenced by <em>refs/heads/master</em>. If you
983 happen to have both <em>heads/master</em> and <em>tags/master</em>, you can
Junio C Hamano1a4e8412005-12-27 08:17:23984 explicitly say <em>heads/master</em> to tell git which one you mean.
Junio C Hamanof5933722012-07-25 23:25:21985 When ambiguous, a <em>&lt;refname&gt;</em> is disambiguated by taking the
Junio C Hamano29f14312006-10-26 08:47:29986 first match in the following rules:
987</p>
Junio C Hamano68cf15a2010-11-06 01:01:59988<div class="olist arabic"><ol class="arabic">
Junio C Hamano29f14312006-10-26 08:47:29989<li>
990<p>
Junio C Hamanof5933722012-07-25 23:25:21991If <em>$GIT_DIR/&lt;refname&gt;</em> exists, that is what you mean (this is usually
Junio C Hamanoee3adc32011-04-06 19:53:38992 useful only for <em>HEAD</em>, <em>FETCH_HEAD</em>, <em>ORIG_HEAD</em>, <em>MERGE_HEAD</em>
993 and <em>CHERRY_PICK_HEAD</em>);
Junio C Hamano1a4e8412005-12-27 08:17:23994</p>
995</li>
996<li>
997<p>
Junio C Hamanof5933722012-07-25 23:25:21998otherwise, <em>refs/&lt;refname&gt;</em> if it exists;
Junio C Hamano29f14312006-10-26 08:47:29999</p>
1000</li>
1001<li>
1002<p>
Junio C Hamanoee3adc32011-04-06 19:53:381003otherwise, <em>refs/tags/&lt;refname&gt;</em> if it exists;
Junio C Hamano29f14312006-10-26 08:47:291004</p>
1005</li>
1006<li>
1007<p>
Junio C Hamanof5933722012-07-25 23:25:211008otherwise, <em>refs/heads/&lt;refname&gt;</em> if it exists;
Junio C Hamano29f14312006-10-26 08:47:291009</p>
1010</li>
1011<li>
1012<p>
Junio C Hamanof5933722012-07-25 23:25:211013otherwise, <em>refs/remotes/&lt;refname&gt;</em> if it exists;
Junio C Hamano29f14312006-10-26 08:47:291014</p>
1015</li>
1016<li>
1017<p>
Junio C Hamanof5933722012-07-25 23:25:211018otherwise, <em>refs/remotes/&lt;refname&gt;/HEAD</em> if it exists.
Junio C Hamano29f14312006-10-26 08:47:291019</p>
Junio C Hamanoee3adc32011-04-06 19:53:381020<div class="paragraph"><p><em>HEAD</em> names the commit on which you based the changes in the working tree.
1021<em>FETCH_HEAD</em> records the branch which you fetched from a remote repository
1022with your last <tt>git fetch</tt> invocation.
1023<em>ORIG_HEAD</em> is created by commands that move your <em>HEAD</em> in a drastic
1024way, to record the position of the <em>HEAD</em> before their operation, so that
1025you can easily change the tip of the branch back to the state before you ran
1026them.
1027<em>MERGE_HEAD</em> records the commit(s) which you are merging into your branch
1028when you run <tt>git merge</tt>.
1029<em>CHERRY_PICK_HEAD</em> records the commit which you are cherry-picking
1030when you run <tt>git cherry-pick</tt>.</p></div>
1031<div class="paragraph"><p>Note that any of the <em>refs/*</em> cases above may come either from
Junio C Hamanoeccdd4a2012-09-10 23:28:171032the <em>$GIT_DIR/refs</em> directory or from the <em>$GIT_DIR/packed-refs</em> file.
1033While the ref name encoding is unspecified, UTF-8 is prefered as
1034some output processing may assume ref names in UTF-8.</p></div>
Junio C Hamano29f14312006-10-26 08:47:291035</li>
Junio C Hamanoba4b9282008-07-06 05:20:311036</ol></div>
Junio C Hamanoee3adc32011-04-06 19:53:381037</dd>
1038<dt class="hdlist1">
1039<em>&lt;refname&gt;@{&lt;date&gt;}</em>, e.g. <em>master@{yesterday}</em>, <em>HEAD@{5 minutes ago}</em>
1040</dt>
1041<dd>
Junio C Hamano29f14312006-10-26 08:47:291042<p>
Junio C Hamanoee3adc32011-04-06 19:53:381043 A ref followed by the suffix <em>@</em> with a date specification
Junio C Hamano29f14312006-10-26 08:47:291044 enclosed in a brace
Junio C Hamano341071d2006-06-04 07:24:481045 pair (e.g. <em>{yesterday}</em>, <em>{1 month 2 weeks 3 days 1 hour 1
Junio C Hamanoee3adc32011-04-06 19:53:381046 second ago}</em> or <em>{1979-02-26 18:30:00}</em>) specifies the value
Junio C Hamano341071d2006-06-04 07:24:481047 of the ref at a prior point in time. This suffix may only be
1048 used immediately following a ref name and the ref must have an
Junio C Hamanoee3adc32011-04-06 19:53:381049 existing log (<em>$GIT_DIR/logs/&lt;ref&gt;</em>). Note that this looks up the state
Junio C Hamanobb8e9962008-06-30 09:05:081050 of your <strong>local</strong> ref at a given time; e.g., what was in your local
Junio C Hamanoee3adc32011-04-06 19:53:381051 <em>master</em> branch last week. If you want to look at commits made during
1052 certain times, see <em>--since</em> and <em>--until</em>.
Junio C Hamano341071d2006-06-04 07:24:481053</p>
Junio C Hamanoee3adc32011-04-06 19:53:381054</dd>
1055<dt class="hdlist1">
1056<em>&lt;refname&gt;@{&lt;n&gt;}</em>, e.g. <em>master@{1}</em>
1057</dt>
1058<dd>
Junio C Hamano341071d2006-06-04 07:24:481059<p>
Junio C Hamanoee3adc32011-04-06 19:53:381060 A ref followed by the suffix <em>@</em> with an ordinal specification
1061 enclosed in a brace pair (e.g. <em>{1}</em>, <em>{15}</em>) specifies
Junio C Hamano2d47c622007-01-18 06:24:101062 the n-th prior value of that ref. For example <em>master@{1}</em>
1063 is the immediate prior value of <em>master</em> while <em>master@{5}</em>
1064 is the 5th prior value of <em>master</em>. This suffix may only be used
1065 immediately following a ref name and the ref must have an existing
Junio C Hamanoee3adc32011-04-06 19:53:381066 log (<em>$GIT_DIR/logs/&lt;refname&gt;</em>).
Junio C Hamano2d47c622007-01-18 06:24:101067</p>
Junio C Hamanoee3adc32011-04-06 19:53:381068</dd>
1069<dt class="hdlist1">
1070<em>@{&lt;n&gt;}</em>, e.g. <em>@{1}</em>
1071</dt>
1072<dd>
Junio C Hamano2d47c622007-01-18 06:24:101073<p>
Junio C Hamanoee3adc32011-04-06 19:53:381074 You can use the <em>@</em> construct with an empty ref part to get at a
1075 reflog entry of the current branch. For example, if you are on
1076 branch <em>blabla</em> then <em>@{1}</em> means the same as <em>blabla@{1}</em>.
Junio C Hamano39381a72007-02-02 07:35:151077</p>
Junio C Hamanoee3adc32011-04-06 19:53:381078</dd>
1079<dt class="hdlist1">
1080<em>@{-&lt;n&gt;}</em>, e.g. <em>@{-1}</em>
1081</dt>
1082<dd>
Junio C Hamano39381a72007-02-02 07:35:151083<p>
Junio C Hamanoee3adc32011-04-06 19:53:381084 The construct <em>@{-&lt;n&gt;}</em> means the &lt;n&gt;th branch checked out
Junio C Hamano440791e2009-01-29 01:54:021085 before the current one.
1086</p>
Junio C Hamanoee3adc32011-04-06 19:53:381087</dd>
1088<dt class="hdlist1">
1089<em>&lt;refname&gt;@{upstream}</em>, e.g. <em>master@{upstream}</em>, <em>@{u}</em>
1090</dt>
1091<dd>
Junio C Hamano440791e2009-01-29 01:54:021092<p>
Junio C Hamanoee3adc32011-04-06 19:53:381093 The suffix <em>@{upstream}</em> to a ref (short form <em>&lt;refname&gt;@{u}</em>) refers to
1094 the branch the ref is set to build on top of. A missing ref defaults
Junio C Hamano57827fb2010-01-23 03:02:501095 to the current branch.
1096</p>
Junio C Hamanoee3adc32011-04-06 19:53:381097</dd>
1098<dt class="hdlist1">
1099<em>&lt;rev&gt;&#94;</em>, e.g. <em>HEAD&#94;, v1.5.1&#94;0</em>
1100</dt>
1101<dd>
Junio C Hamano57827fb2010-01-23 03:02:501102<p>
Junio C Hamanoee3adc32011-04-06 19:53:381103 A suffix <em>&#94;</em> to a revision parameter means the first parent of
Junio C Hamano6926bef2007-06-16 09:54:051104 that commit object. <em>&#94;&lt;n&gt;</em> means the &lt;n&gt;th parent (i.e.
Junio C Hamanoee3adc32011-04-06 19:53:381105 <em>&lt;rev&gt;&#94;</em>
1106 is equivalent to <em>&lt;rev&gt;&#94;1</em>). As a special rule,
1107 <em>&lt;rev&gt;&#94;0</em> means the commit itself and is used when <em>&lt;rev&gt;</em> is the
Junio C Hamano1a4e8412005-12-27 08:17:231108 object name of a tag object that refers to a commit object.
1109</p>
Junio C Hamanoee3adc32011-04-06 19:53:381110</dd>
1111<dt class="hdlist1">
1112<em>&lt;rev&gt;&#126;&lt;n&gt;</em>, e.g. <em>master&#126;3</em>
1113</dt>
1114<dd>
Junio C Hamano1a4e8412005-12-27 08:17:231115<p>
Junio C Hamanoee3adc32011-04-06 19:53:381116 A suffix <em>&#126;&lt;n&gt;</em> to a revision parameter means the commit
Junio C Hamano81d540a2012-03-02 19:52:471117 object that is the &lt;n&gt;th generation ancestor of the named
Junio C Hamanoee3adc32011-04-06 19:53:381118 commit object, following only the first parents. I.e. <em>&lt;rev&gt;&#126;3</em> is
1119 equivalent to <em>&lt;rev&gt;&#94;&#94;&#94;</em> which is equivalent to
1120 <em>&lt;rev&gt;&#94;1&#94;1&#94;1</em>. See below for an illustration of
Junio C Hamano29f14312006-10-26 08:47:291121 the usage of this form.
Junio C Hamano1a4e8412005-12-27 08:17:231122</p>
Junio C Hamanoee3adc32011-04-06 19:53:381123</dd>
1124<dt class="hdlist1">
1125<em>&lt;rev&gt;&#94;{&lt;type&gt;}</em>, e.g. <em>v0.99.8&#94;{commit}</em>
1126</dt>
1127<dd>
Junio C Hamano1a4e8412005-12-27 08:17:231128<p>
Junio C Hamanoee3adc32011-04-06 19:53:381129 A suffix <em>&#94;</em> followed by an object type name enclosed in
1130 brace pair means the object
Junio C Hamano1a4e8412005-12-27 08:17:231131 could be a tag, and dereference the tag recursively until an
1132 object of that type is found or the object cannot be
Junio C Hamanoee3adc32011-04-06 19:53:381133 dereferenced anymore (in which case, barf). <em>&lt;rev&gt;&#94;0</em>
1134 is a short-hand for <em>&lt;rev&gt;&#94;{commit}</em>.
Junio C Hamano1a4e8412005-12-27 08:17:231135</p>
Junio C Hamanoee3adc32011-04-06 19:53:381136</dd>
1137<dt class="hdlist1">
1138<em>&lt;rev&gt;&#94;{}</em>, e.g. <em>v0.99.8&#94;{}</em>
1139</dt>
1140<dd>
Junio C Hamano1a4e8412005-12-27 08:17:231141<p>
Junio C Hamanoee3adc32011-04-06 19:53:381142 A suffix <em>&#94;</em> followed by an empty brace pair
1143 means the object could be a tag,
Junio C Hamano1a4e8412005-12-27 08:17:231144 and dereference the tag recursively until a non-tag object is
1145 found.
1146</p>
Junio C Hamanoee3adc32011-04-06 19:53:381147</dd>
1148<dt class="hdlist1">
1149<em>&lt;rev&gt;&#94;{/&lt;text&gt;}</em>, e.g. <em>HEAD^{/fix nasty bug}</em>
1150</dt>
1151<dd>
Junio C Hamanofbe00522006-10-19 05:58:481152<p>
Junio C Hamanoee3adc32011-04-06 19:53:381153 A suffix <em>&#94;</em> to a revision parameter, followed by a brace
1154 pair that contains a text led by a slash,
1155 is the same as the <em>:/fix nasty bug</em> syntax below except that
Junio C Hamano18b5ad52010-12-22 01:57:501156 it returns the youngest matching commit which is reachable from
Junio C Hamanoee3adc32011-04-06 19:53:381157 the <em>&lt;rev&gt;</em> before <em>&#94;</em>.
Junio C Hamano18b5ad52010-12-22 01:57:501158</p>
Junio C Hamanoee3adc32011-04-06 19:53:381159</dd>
1160<dt class="hdlist1">
1161<em>:/&lt;text&gt;</em>, e.g. <em>:/fix nasty bug</em>
1162</dt>
1163<dd>
Junio C Hamano18b5ad52010-12-22 01:57:501164<p>
Junio C Hamanoee3adc32011-04-06 19:53:381165 A colon, followed by a slash, followed by a text, names
Junio C Hamano442206c2010-09-28 05:51:231166 a commit whose commit message matches the specified regular expression.
Junio C Hamano6ac2f142007-03-01 01:24:561167 This name returns the youngest matching commit which is
1168 reachable from any ref. If the commit message starts with a
Junio C Hamanoee3adc32011-04-06 19:53:381169 <em>!</em> you have to repeat that; the special sequence <em>:/!</em>,
1170 followed by something else than <em>!</em>, is reserved for now.
Junio C Hamano442206c2010-09-28 05:51:231171 The regular expression can match any part of the commit message. To
Junio C Hamanoee3adc32011-04-06 19:53:381172 match messages starting with a string, one can use e.g. <em>:/^foo</em>.
Junio C Hamano6ac2f142007-03-01 01:24:561173</p>
Junio C Hamanoee3adc32011-04-06 19:53:381174</dd>
1175<dt class="hdlist1">
1176<em>&lt;rev&gt;:&lt;path&gt;</em>, e.g. <em>HEAD:README</em>, <em>:README</em>, <em>master:./README</em>
1177</dt>
1178<dd>
Junio C Hamano6ac2f142007-03-01 01:24:561179<p>
Junio C Hamanoee3adc32011-04-06 19:53:381180 A suffix <em>:</em> followed by a path names the blob or tree
Junio C Hamanofbe00522006-10-19 05:58:481181 at the given path in the tree-ish object named by the part
1182 before the colon.
Junio C Hamanoee3adc32011-04-06 19:53:381183 <em>:path</em> (with an empty part before the colon)
Junio C Hamano7d449522010-07-01 00:08:511184 is a special case of the syntax described next: content
1185 recorded in the index at the given path.
Junio C Hamanoee3adc32011-04-06 19:53:381186 A path starting with <em>./</em> or <em>../</em> is relative to the current working directory.
1187 The given path will be converted to be relative to the working tree&#8217;s root directory.
Junio C Hamano0d75e872010-12-17 06:57:261188 This is most useful to address a blob or tree from a commit or tree that has
Junio C Hamanoee3adc32011-04-06 19:53:381189 the same tree structure as the working tree.
Junio C Hamanofbe00522006-10-19 05:58:481190</p>
Junio C Hamanoee3adc32011-04-06 19:53:381191</dd>
1192<dt class="hdlist1">
1193<em>:&lt;n&gt;:&lt;path&gt;</em>, e.g. <em>:0:README</em>, <em>:README</em>
1194</dt>
1195<dd>
Junio C Hamanofbe00522006-10-19 05:58:481196<p>
Junio C Hamanoee3adc32011-04-06 19:53:381197 A colon, optionally followed by a stage number (0 to 3) and a
1198 colon, followed by a path, names a blob object in the
1199 index at the given path. A missing stage number (and the colon
1200 that follows it) names a stage 0 entry. During a merge, stage
Junio C Hamano68cf15a2010-11-06 01:01:591201 1 is the common ancestor, stage 2 is the target branch&#8217;s version
Junio C Hamanocae86272007-08-21 02:20:491202 (typically the current branch), and stage 3 is the version from
Junio C Hamanoee3adc32011-04-06 19:53:381203 the branch which is being merged.
Junio C Hamanofbe00522006-10-19 05:58:481204</p>
Junio C Hamanoee3adc32011-04-06 19:53:381205</dd>
1206</dl></div>
Junio C Hamano68cf15a2010-11-06 01:01:591207<div class="paragraph"><p>Here is an illustration, by Jon Loeliger. Both commit nodes B
Junio C Hamano1c95e9d2008-02-01 10:52:441208and C are parents of commit node A. Parent commits are ordered
Junio C Hamanoba4b9282008-07-06 05:20:311209left-to-right.</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231210<div class="literalblock">
1211<div class="content">
1212<pre><tt>G H I J
1213 \ / \ /
1214 D E F
Junio C Hamano137273f2008-05-27 07:44:331215 \ | / \
1216 \ | / |
Junio C Hamano872c5682006-07-07 06:05:401217 \|/ |
Junio C Hamano1a4e8412005-12-27 08:17:231218 B C
1219 \ /
1220 \ /
1221 A</tt></pre>
1222</div></div>
1223<div class="literalblock">
1224<div class="content">
1225<pre><tt>A = = A^0
1226B = A^ = A^1 = A~1
1227C = A^2 = A^2
1228D = A^^ = A^1^1 = A~2
1229E = B^2 = A^^2
1230F = B^3 = A^^3
1231G = A^^^ = A^1^1^1 = A~3
1232H = D^2 = B^^2 = A^^^2 = A~2^2
1233I = F^ = B^3^ = A^^3^
1234J = F^2 = B^3^2 = A^^3^2</tt></pre>
1235</div></div>
1236</div>
Junio C Hamanoba4b9282008-07-06 05:20:311237<h2 id="_specifying_ranges">SPECIFYING RANGES</h2>
Junio C Hamano872c5682006-07-07 06:05:401238<div class="sectionbody">
Junio C Hamanoee3adc32011-04-06 19:53:381239<div class="paragraph"><p>History traversing commands such as <tt>git log</tt> operate on a set
Junio C Hamano872c5682006-07-07 06:05:401240of commits, not just a single commit. To these commands,
1241specifying a single revision with the notation described in the
1242previous section means the set of commits reachable from that
Junio C Hamanoba4b9282008-07-06 05:20:311243commit, following the commit ancestry chain.</p></div>
Junio C Hamanoee3adc32011-04-06 19:53:381244<div class="paragraph"><p>To exclude commits reachable from a commit, a prefix <em>&#94;</em>
1245notation is used. E.g. <em>&#94;r1 r2</em> means commits reachable
1246from <em>r2</em> but exclude the ones reachable from <em>r1</em>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591247<div class="paragraph"><p>This set operation appears so often that there is a shorthand
Junio C Hamanoee3adc32011-04-06 19:53:381248for it. When you have two commits <em>r1</em> and <em>r2</em> (named according
Junio C Hamanod32738e2008-07-09 19:53:421249to the syntax explained in SPECIFYING REVISIONS above), you can ask
1250for commits that are reachable from r2 excluding those that are reachable
Junio C Hamanoee3adc32011-04-06 19:53:381251from r1 by <em>&#94;r1 r2</em> and it can be written as <em>r1..r2</em>.</p></div>
1252<div class="paragraph"><p>A similar notation <em>r1...r2</em> is called symmetric difference
1253of <em>r1</em> and <em>r2</em> and is defined as
1254<em>r1 r2 --not $(git merge-base --all r1 r2)</em>.
Junio C Hamanoea5dae62007-05-10 23:25:081255It is the set of commits that are reachable from either one of
Junio C Hamanoee3adc32011-04-06 19:53:381256<em>r1</em> or <em>r2</em> but not from both.</p></div>
Junio C Hamanoeccdd4a2012-09-10 23:28:171257<div class="paragraph"><p>In these two shorthands, you can omit one end and let it default to HEAD.
1258For example, <em>origin..</em> is a shorthand for <em>origin..HEAD</em> and asks "What
1259did I do since I forked from the origin branch?" Similarly, <em>..origin</em>
1260is a shorthand for <em>HEAD..origin</em> and asks "What did the origin do since
1261I forked from them?" Note that <em>..</em> would mean <em>HEAD..HEAD</em> which is an
1262empty range that is both reachable and unreachable from HEAD.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591263<div class="paragraph"><p>Two other shorthands for naming a set that is formed by a commit
Junio C Hamanoee3adc32011-04-06 19:53:381264and its parent commits exist. The <em>r1&#94;@</em> notation means all
1265parents of <em>r1</em>. <em>r1&#94;!</em> includes commit <em>r1</em> but excludes
Junio C Hamano15048272008-07-07 22:10:481266all of its parents.</p></div>
Junio C Hamanof5933722012-07-25 23:25:211267<div class="paragraph"><p>To summarize:</p></div>
1268<div class="dlist"><dl>
1269<dt class="hdlist1">
1270<em>&lt;rev&gt;</em>
1271</dt>
1272<dd>
1273<p>
1274 Include commits that are reachable from (i.e. ancestors of)
1275 &lt;rev&gt;.
1276</p>
1277</dd>
1278<dt class="hdlist1">
1279<em>&#94;&lt;rev&gt;</em>
1280</dt>
1281<dd>
1282<p>
1283 Exclude commits that are reachable from (i.e. ancestors of)
1284 &lt;rev&gt;.
1285</p>
1286</dd>
1287<dt class="hdlist1">
1288<em>&lt;rev1&gt;..&lt;rev2&gt;</em>
1289</dt>
1290<dd>
1291<p>
1292 Include commits that are reachable from &lt;rev2&gt; but exclude
1293 those that are reachable from &lt;rev1&gt;.
1294</p>
1295</dd>
1296<dt class="hdlist1">
1297<em>&lt;rev1&gt;...&lt;rev2&gt;</em>
1298</dt>
1299<dd>
1300<p>
1301 Include commits that are reachable from either &lt;rev1&gt; or
1302 &lt;rev2&gt; but exclude those that are reachable from both.
1303</p>
1304</dd>
1305<dt class="hdlist1">
1306<em>&lt;rev&gt;&#94;@</em>, e.g. <em>HEAD&#94;@</em>
1307</dt>
1308<dd>
1309<p>
1310 A suffix <em>&#94;</em> followed by an at sign is the same as listing
1311 all parents of <em>&lt;rev&gt;</em> (meaning, include anything reachable from
1312 its parents, but not the commit itself).
1313</p>
1314</dd>
1315<dt class="hdlist1">
1316<em>&lt;rev&gt;&#94;!</em>, e.g. <em>HEAD&#94;!</em>
1317</dt>
1318<dd>
1319<p>
1320 A suffix <em>&#94;</em> followed by an exclamation mark is the same
1321 as giving commit <em>&lt;rev&gt;</em> and then all its parents prefixed with
1322 <em>&#94;</em> to exclude them (and their ancestors).
1323</p>
1324</dd>
1325</dl></div>
Junio C Hamano68cf15a2010-11-06 01:01:591326<div class="paragraph"><p>Here are a handful of examples:</p></div>
Junio C Hamano872c5682006-07-07 06:05:401327<div class="literalblock">
1328<div class="content">
Junio C Hamano3aa81822007-03-30 08:52:261329<pre><tt>D G H D
1330D F G H I J D F
1331^G D H D
1332^D B E I J F B
Junio C Hamanof5933722012-07-25 23:25:211333B..C C
Junio C Hamano3aa81822007-03-30 08:52:261334B...C G H D E B C
1335^D B C E I J F B C
Junio C Hamanof5933722012-07-25 23:25:211336C I J F C
Junio C Hamano3aa81822007-03-30 08:52:261337C^@ I J F
Junio C Hamanof5933722012-07-25 23:25:211338C^! C
Junio C Hamano3aa81822007-03-30 08:52:261339F^! D G H D F</tt></pre>
Junio C Hamano872c5682006-07-07 06:05:401340</div></div>
1341</div>
Junio C Hamanoba4b9282008-07-06 05:20:311342<h2 id="_parseopt">PARSEOPT</h2>
Junio C Hamanoe1258662007-11-19 05:03:191343<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591344<div class="paragraph"><p>In <tt>--parseopt</tt> mode, <em>git rev-parse</em> helps massaging options to bring to shell
Junio C Hamanoe1258662007-11-19 05:03:191345scripts the same facilities C builtins have. It works as an option normalizer
Junio C Hamanoba4b9282008-07-06 05:20:311346(e.g. splits single switches aggregate values), a bit like <tt>getopt(1)</tt> does.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591347<div class="paragraph"><p>It takes on the standard input the specification of the options to parse and
Junio C Hamanoa9788762010-08-03 15:15:541348understand, and echoes on the standard output a string suitable for <tt>sh(1)</tt> <tt>eval</tt>
Junio C Hamanoe1258662007-11-19 05:03:191349to replace the arguments with normalized ones. In case of error, it outputs
Junio C Hamanoba4b9282008-07-06 05:20:311350usage on the standard error stream, and exits with code 129.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591351<div class="paragraph"><p>Note: Make sure you quote the result when passing it to <tt>eval</tt>. See
Junio C Hamanoa9788762010-08-03 15:15:541352below for an example.</p></div>
Junio C Hamanoba4b9282008-07-06 05:20:311353<h3 id="_input_format">Input Format</h3><div style="clear:left"></div>
Junio C Hamano68cf15a2010-11-06 01:01:591354<div class="paragraph"><p><em>git rev-parse --parseopt</em> input format is fully text based. It has two parts,
Junio C Hamanoe1258662007-11-19 05:03:191355separated by a line that contains only <tt>--</tt>. The lines before the separator
1356(should be more than one) are used for the usage.
Junio C Hamanoba4b9282008-07-06 05:20:311357The lines after the separator describe the options.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591358<div class="paragraph"><p>Each line of options has this format:</p></div>
Junio C Hamanoe1258662007-11-19 05:03:191359<div class="listingblock">
1360<div class="content">
Junio C Hamanobb343172008-03-09 10:39:091361<pre><tt>&lt;opt_spec&gt;&lt;flags&gt;* SP+ help LF</tt></pre>
Junio C Hamanoe1258662007-11-19 05:03:191362</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591363<div class="dlist"><dl>
1364<dt class="hdlist1">
Junio C Hamanoe1258662007-11-19 05:03:191365<tt>&lt;opt_spec&gt;</tt>
1366</dt>
1367<dd>
1368<p>
1369 its format is the short option character, then the long option name
1370 separated by a comma. Both parts are not required, though at least one
1371 is necessary. <tt>h,help</tt>, <tt>dry-run</tt> and <tt>f</tt> are all three correct
1372 <tt>&lt;opt_spec&gt;</tt>.
1373</p>
1374</dd>
Junio C Hamano68cf15a2010-11-06 01:01:591375<dt class="hdlist1">
Junio C Hamanobb343172008-03-09 10:39:091376<tt>&lt;flags&gt;</tt>
Junio C Hamanoe1258662007-11-19 05:03:191377</dt>
1378<dd>
1379<p>
Junio C Hamanobb343172008-03-09 10:39:091380 <tt>&lt;flags&gt;</tt> are of <tt>*</tt>, <tt>=</tt>, <tt>?</tt> or <tt>!</tt>.
Junio C Hamanoe1258662007-11-19 05:03:191381</p>
Junio C Hamano68cf15a2010-11-06 01:01:591382<div class="ulist"><ul>
Junio C Hamanobb343172008-03-09 10:39:091383<li>
1384<p>
1385Use <tt>=</tt> if the option takes an argument.
1386</p>
1387</li>
1388<li>
1389<p>
1390Use <tt>?</tt> to mean that the option is optional (though its use is discouraged).
1391</p>
1392</li>
1393<li>
1394<p>
1395Use <tt>*</tt> to mean that this option should not be listed in the usage
Junio C Hamano68cf15a2010-11-06 01:01:591396 generated for the <tt>-h</tt> argument. It&#8217;s shown for <tt>--help-all</tt> as
Junio C Hamanoa28a9202012-06-21 07:08:231397 documented in <a href="gitcli.html">gitcli(7)</a>.
Junio C Hamanobb343172008-03-09 10:39:091398</p>
1399</li>
1400<li>
1401<p>
1402Use <tt>!</tt> to not make the corresponding negated long option available.
1403</p>
1404</li>
Junio C Hamanoba4b9282008-07-06 05:20:311405</ul></div>
Junio C Hamanoe1258662007-11-19 05:03:191406</dd>
Junio C Hamanoba4b9282008-07-06 05:20:311407</dl></div>
Junio C Hamano68cf15a2010-11-06 01:01:591408<div class="paragraph"><p>The remainder of the line, after stripping the spaces, is used
Junio C Hamanoba4b9282008-07-06 05:20:311409as the help associated to the option.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591410<div class="paragraph"><p>Blank lines are ignored, and lines that don&#8217;t match this specification are used
Junio C Hamanoe1258662007-11-19 05:03:191411as option group headers (start the line with a space to create such
Junio C Hamanoba4b9282008-07-06 05:20:311412lines on purpose).</p></div>
1413<h3 id="_example">Example</h3><div style="clear:left"></div>
Junio C Hamanoe1258662007-11-19 05:03:191414<div class="listingblock">
1415<div class="content">
1416<pre><tt>OPTS_SPEC="\
1417some-command [options] &lt;args&gt;...
1418
1419some-command does foo and bar!
1420--
1421h,help show the help
1422
1423foo some nifty option --foo
1424bar= some cool option --bar with an argument
1425
1426 An option group Header
1427C? option C with an optional argument"
1428
Junio C Hamanoa9788762010-08-03 15:15:541429eval "$(echo "$OPTS_SPEC" | git rev-parse --parseopt -- "$@" || echo exit $?)"</tt></pre>
Junio C Hamanoe1258662007-11-19 05:03:191430</div></div>
1431</div>
Junio C Hamano7ae18252009-05-23 09:53:321432<h2 id="_sq_quote">SQ-QUOTE</h2>
1433<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591434<div class="paragraph"><p>In <tt>--sq-quote</tt> mode, <em>git rev-parse</em> echoes on the standard output a
Junio C Hamano7ae18252009-05-23 09:53:321435single line suitable for <tt>sh(1)</tt> <tt>eval</tt>. This line is made by
1436normalizing the arguments following <tt>--sq-quote</tt>. Nothing other than
1437quoting the arguments is done.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:591438<div class="paragraph"><p>If you want command input to still be interpreted as usual by
Junio C Hamano1aa40d22010-01-21 17:46:431439<em>git rev-parse</em> before the output is shell quoted, see the <tt>--sq</tt>
Junio C Hamano7ae18252009-05-23 09:53:321440option.</p></div>
1441<h3 id="_example_2">Example</h3><div style="clear:left"></div>
1442<div class="listingblock">
1443<div class="content">
1444<pre><tt>$ cat &gt;your-git-script.sh &lt;&lt;\EOF
1445#!/bin/sh
1446args=$(git rev-parse --sq-quote "$@") # quote user-supplied arguments
1447command="git frotz -n24 $args" # and use it inside a handcrafted
1448 # command line
1449eval "$command"
1450EOF
1451
1452$ sh your-git-script.sh "a b'c"</tt></pre>
1453</div></div>
1454</div>
Junio C Hamanoba4b9282008-07-06 05:20:311455<h2 id="_examples">EXAMPLES</h2>
Junio C Hamanofeeb1be2008-05-22 00:53:351456<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:591457<div class="ulist"><ul>
Junio C Hamanofeeb1be2008-05-22 00:53:351458<li>
1459<p>
1460Print the object name of the current commit:
1461</p>
1462<div class="listingblock">
1463<div class="content">
1464<pre><tt>$ git rev-parse --verify HEAD</tt></pre>
1465</div></div>
1466</li>
1467<li>
1468<p>
1469Print the commit object name from the revision in the $REV shell variable:
1470</p>
1471<div class="listingblock">
1472<div class="content">
1473<pre><tt>$ git rev-parse --verify $REV</tt></pre>
1474</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591475<div class="paragraph"><p>This will error out if $REV is empty or not a valid revision.</p></div>
Junio C Hamanofeeb1be2008-05-22 00:53:351476</li>
1477<li>
1478<p>
1479Same as above:
1480</p>
1481<div class="listingblock">
1482<div class="content">
1483<pre><tt>$ git rev-parse --default master --verify $REV</tt></pre>
1484</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:591485<div class="paragraph"><p>but if $REV is empty, the commit object name from master will be printed.</p></div>
Junio C Hamanofeeb1be2008-05-22 00:53:351486</li>
Junio C Hamanoba4b9282008-07-06 05:20:311487</ul></div>
Junio C Hamanofeeb1be2008-05-22 00:53:351488</div>
Junio C Hamanoba4b9282008-07-06 05:20:311489<h2 id="_git">GIT</h2>
Junio C Hamano1a4e8412005-12-27 08:17:231490<div class="sectionbody">
Junio C Hamanoa28a9202012-06-21 07:08:231491<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamano1a4e8412005-12-27 08:17:231492</div>
Junio C Hamano7bd050f2011-09-22 06:32:221493</div>
1494<div id="footnotes"><hr /></div>
Junio C Hamano1a4e8412005-12-27 08:17:231495<div id="footer">
1496<div id="footer-text">
Junio C Hamanobb300642012-07-22 21:09:141497Last updated 2012-07-22 14:08:46 PDT
Junio C Hamano1a4e8412005-12-27 08:17:231498</div>
1499</div>
1500</body>
1501</html>