blob: e0a91a25a04e68d16c4c06afaf44de7e60c284bf [file] [log] [blame]
Junio C Hamanoff4b4312006-10-25 22:55:311<!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-for-each-ref(1)</title>
Junio C Hamanoff4b4312006-10-25 22:55:318<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 Hamanoff4b4312006-10-25 22:55:3127
28em {
29 font-style: italic;
Junio C Hamano68cf15a2010-11-06 01:01:5930 color: navy;
Junio C Hamanoff4b4312006-10-25 22:55:3131}
32
33strong {
34 font-weight: bold;
Junio C Hamano68cf15a2010-11-06 01:01:5935 color: #083194;
Junio C Hamanoff4b4312006-10-25 22:55:3136}
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 Hamanoff4b4312006-10-25 22:55:3151 border-bottom: 2px solid silver;
52}
53h2 {
Junio C Hamanoff4b4312006-10-25 22:55:3154 padding-top: 0.5em;
55}
Junio C Hamanoba4b9282008-07-06 05:20:3156h3 {
57 float: left;
58}
59h3 + * {
60 clear: left;
61}
Junio C Hamanoff4b4312006-10-25 22:55:3162
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 Hamanoff4b4312006-10-25 22:55:3181pre {
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 Hamanoff4b4312006-10-25 22:55:3191}
92span#email {
93}
Junio C Hamano68cf15a2010-11-06 01:01:5994span#revnumber, span#revdate, span#revremark {
Junio C Hamanoff4b4312006-10-25 22:55:3195 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 Hamanoff4b4312006-10-25 22:55:31118div.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 Hamanoff4b4312006-10-25 22:55:31122 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 Hamanoff4b4312006-10-25 22:55:31129}
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 Hamanoff4b4312006-10-25 22:55:31138 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 Hamanoff4b4312006-10-25 22:55:31176}
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 Hamanoff4b4312006-10-25 22:55:31180 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 Hamanoff4b4312006-10-25 22:55:31194
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 Hamanoff4b4312006-10-25 22:55:31206}
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 Hamanoff4b4312006-10-25 22:55:31211}
212
Junio C Hamanoff4b4312006-10-25 22:55:31213div.imageblock div.content { padding-left: 0; }
Junio C Hamanoff4b4312006-10-25 22:55:31214span.image img { border-style: none; }
Junio C Hamano68cf15a2010-11-06 01:01:59215a.image:visited { color: white; }
Junio C Hamanoff4b4312006-10-25 22:55:31216
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 Hamanoff4b4312006-10-25 22:55:31226}
227dd > *:first-child {
Junio C Hamano68cf15a2010-11-06 01:01:59228 margin-top: 0.1em;
Junio C Hamanoff4b4312006-10-25 22:55:31229}
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 Hamanoff4b4312006-10-25 22:55:31238 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 Hamanoff4b4312006-10-25 22:55:31256
257div.tableblock > table {
Junio C Hamanoba4b9282008-07-06 05:20:31258 border: 3px solid #527bbd;
Junio C Hamanoff4b4312006-10-25 22:55:31259}
Junio C Hamano7bd050f2011-09-22 06:32:22260thead, p.table.header {
Junio C Hamanoff4b4312006-10-25 22:55:31261 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 Hamanoff4b4312006-10-25 22:55:31285
Junio C Hamano68cf15a2010-11-06 01:01:59286
287div.hdlist {
Junio C Hamanoff4b4312006-10-25 22:55:31288 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 Hamanoff4b4312006-10-25 22:55:31298 vertical-align: top;
Junio C Hamano68cf15a2010-11-06 01:01:59299 font-style: normal;
Junio C Hamanoff4b4312006-10-25 22:55:31300 padding-right: 0.8em;
Junio C Hamano68cf15a2010-11-06 01:01:59301 color: navy;
Junio C Hamanoff4b4312006-10-25 22:55:31302}
Junio C Hamano68cf15a2010-11-06 01:01:59303td.hdlist2 {
Junio C Hamanoff4b4312006-10-25 22:55:31304 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 Hamanoff4b4312006-10-25 22:55:31314
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 Hamanoff4b4312006-10-25 22:55:31343@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 Hamanoff4b4312006-10-25 22:55:31394/* 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 Hamanoff4b4312006-10-25 22:55:31403 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 Hamanoff4b4312006-10-25 22:55:31426}
427
428div.exampleblock-content {
Junio C Hamano7bd050f2011-09-22 06:32:22429 border-left: 3px solid #dddddd;
Junio C Hamanoff4b4312006-10-25 22:55:31430 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 Hamanoff4b4312006-10-25 22:55:31435</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 Hamanoff4b4312006-10-25 22:55:31569</head>
570<body>
571<div id="header">
572<h1>
573git-for-each-ref(1) Manual Page
574</h1>
575<h2>NAME</h2>
576<div class="sectionbody">
577<p>git-for-each-ref -
578 Output information on each ref
579</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 Hamanoff4b4312006-10-25 22:55:31584<div class="sectionbody">
Junio C Hamanoa9b8d242007-05-19 04:51:55585<div class="verseblock">
Junio C Hamano68cf15a2010-11-06 01:01:59586<div class="verseblock-content"><em>git for-each-ref</em> [--count=&lt;count&gt;] [--shell|--perl|--python|--tcl]
587 [(--sort=&lt;key&gt;)&#8230;] [--format=&lt;format&gt;] [&lt;pattern&gt;&#8230;]</div>
588<div class="verseblock-attribution">
589</div></div>
Junio C Hamanoff4b4312006-10-25 22:55:31590</div>
Junio C Hamanoba4b9282008-07-06 05:20:31591<h2 id="_description">DESCRIPTION</h2>
Junio C Hamanoff4b4312006-10-25 22:55:31592<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59593<div class="paragraph"><p>Iterate over all refs that match <tt>&lt;pattern&gt;</tt> and show them
Junio C Hamanoff4b4312006-10-25 22:55:31594according to the given <tt>&lt;format&gt;</tt>, after sorting them according
Junio C Hamanoa2f46622008-09-03 05:20:31595to the given set of <tt>&lt;key&gt;</tt>. If <tt>&lt;count&gt;</tt> is given, stop after
Junio C Hamanof9771f62007-01-17 17:42:30596showing that many refs. The interpolated values in <tt>&lt;format&gt;</tt>
Junio C Hamanoff4b4312006-10-25 22:55:31597can optionally be quoted as string literals in the specified
Junio C Hamanoba4b9282008-07-06 05:20:31598host language allowing their direct evaluation in that language.</p></div>
Junio C Hamanoff4b4312006-10-25 22:55:31599</div>
Junio C Hamanoba4b9282008-07-06 05:20:31600<h2 id="_options">OPTIONS</h2>
Junio C Hamanoff4b4312006-10-25 22:55:31601<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59602<div class="dlist"><dl>
603<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31604&lt;count&gt;
605</dt>
606<dd>
607<p>
608 By default the command shows all refs that match
609 <tt>&lt;pattern&gt;</tt>. This option makes it stop after showing
610 that many refs.
611</p>
612</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59613<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31614&lt;key&gt;
615</dt>
616<dd>
617<p>
618 A field name to sort on. Prefix <tt>-</tt> to sort in
619 descending order of the value. When unspecified,
Junio C Hamanof7c042d2008-06-06 22:50:53620 <tt>refname</tt> is used. You may use the --sort=&lt;key&gt; option
621 multiple times, in which case the last key becomes the primary
622 key.
Junio C Hamanoff4b4312006-10-25 22:55:31623</p>
624</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59625<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31626&lt;format&gt;
627</dt>
628<dd>
629<p>
630 A string that interpolates <tt>%(fieldname)</tt> from the
631 object pointed at by a ref being shown. If <tt>fieldname</tt>
632 is prefixed with an asterisk (<tt>*</tt>) and the ref points
633 at a tag object, the value for the field in the object
634 tag refers is used. When unspecified, defaults to
Junio C Hamano4de43af2006-10-28 21:29:01635 <tt>%(objectname) SPC %(objecttype) TAB %(refname)</tt>.
636 It also interpolates <tt>%%</tt> to <tt>%</tt>, and <tt>%xx</tt> where <tt>xx</tt>
637 are hex digits interpolates to character with hex code
638 <tt>xx</tt>; for example <tt>%00</tt> interpolates to <tt>\0</tt> (NUL),
639 <tt>%09</tt> to <tt>\t</tt> (TAB) and <tt>%0a</tt> to <tt>\n</tt> (LF).
Junio C Hamanoff4b4312006-10-25 22:55:31640</p>
641</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59642<dt class="hdlist1">
Junio C Hamano9e395072008-07-31 22:11:21643&lt;pattern&gt;&#8230;
Junio C Hamanoff4b4312006-10-25 22:55:31644</dt>
645<dd>
646<p>
Junio C Hamanof7c042d2008-06-06 22:50:53647 If one or more patterns are given, only refs are shown that
Junio C Hamanocb1c44f2008-08-06 06:19:33648 match against at least one pattern, either using fnmatch(3) or
Junio C Hamanof7c042d2008-06-06 22:50:53649 literally, in the latter case matching completely or from the
650 beginning up to a slash.
Junio C Hamanoff4b4312006-10-25 22:55:31651</p>
652</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59653<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47654--shell
655</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59656<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47657--perl
658</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59659<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47660--python
661</dt>
Junio C Hamano68cf15a2010-11-06 01:01:59662<dt class="hdlist1">
Junio C Hamanoeb415992008-06-08 22:49:47663--tcl
Junio C Hamanoff4b4312006-10-25 22:55:31664</dt>
665<dd>
666<p>
667 If given, strings that substitute <tt>%(fieldname)</tt>
668 placeholders are quoted as string literals suitable for
669 the specified host language. This is meant to produce
670 a scriptlet that can directly be `eval`ed.
671</p>
672</dd>
Junio C Hamanoba4b9282008-07-06 05:20:31673</dl></div>
Junio C Hamanoff4b4312006-10-25 22:55:31674</div>
Junio C Hamanoba4b9282008-07-06 05:20:31675<h2 id="_field_names">FIELD NAMES</h2>
Junio C Hamanoff4b4312006-10-25 22:55:31676<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59677<div class="paragraph"><p>Various values from structured fields in referenced objects can
Junio C Hamanoff4b4312006-10-25 22:55:31678be used to interpolate into the resulting output, or as sort
Junio C Hamanoba4b9282008-07-06 05:20:31679keys.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59680<div class="paragraph"><p>For all objects, the following names can be used:</p></div>
681<div class="dlist"><dl>
682<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31683refname
684</dt>
685<dd>
686<p>
Junio C Hamano42f855f2007-02-06 00:09:38687 The name of the ref (the part after $GIT_DIR/).
Junio C Hamano5e4d8de2008-09-19 06:27:02688 For a non-ambiguous short name of the ref append <tt>:short</tt>.
Junio C Hamano3bd66e92009-04-18 06:17:56689 The option core.warnAmbiguousRefs is used to select the strict
690 abbreviation mode.
Junio C Hamanoff4b4312006-10-25 22:55:31691</p>
692</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59693<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31694objecttype
695</dt>
696<dd>
697<p>
698 The type of the object (<tt>blob</tt>, <tt>tree</tt>, <tt>commit</tt>, <tt>tag</tt>).
699</p>
700</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59701<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31702objectsize
703</dt>
704<dd>
705<p>
Junio C Hamano1aa40d22010-01-21 17:46:43706 The size of the object (the same as <em>git cat-file -s</em> reports).
Junio C Hamanoff4b4312006-10-25 22:55:31707</p>
708</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59709<dt class="hdlist1">
Junio C Hamanoff4b4312006-10-25 22:55:31710objectname
711</dt>
712<dd>
713<p>
714 The object name (aka SHA-1).
Junio C Hamanoe97d5772010-05-19 08:13:58715 For a non-ambiguous abbreviation of the object name append <tt>:short</tt>.
Junio C Hamanoff4b4312006-10-25 22:55:31716</p>
717</dd>
Junio C Hamano68cf15a2010-11-06 01:01:59718<dt class="hdlist1">
Junio C Hamano98e32c32009-04-13 02:39:53719upstream
720</dt>
721<dd>
722<p>
Junio C Hamano719b8a32012-06-08 18:40:53723 The name of a local ref which can be considered <tt>`upstream''
724 from the displayed ref. Respects `:short</tt> in the same way as
Junio C Hamano98e32c32009-04-13 02:39:53725 <tt>refname</tt> above.
726</p>
727</dd>
Junio C Hamanoba4b9282008-07-06 05:20:31728</dl></div>
Junio C Hamano68cf15a2010-11-06 01:01:59729<div class="paragraph"><p>In addition to the above, for commit and tag objects, the header
Junio C Hamanoff4b4312006-10-25 22:55:31730field names (<tt>tree</tt>, <tt>parent</tt>, <tt>object</tt>, <tt>type</tt>, and <tt>tag</tt>) can
Junio C Hamanoba4b9282008-07-06 05:20:31731be used to specify the value in the header field.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59732<div class="paragraph"><p>Fields that have name-email-date tuple as its value (<tt>author</tt>,
Junio C Hamanoff4b4312006-10-25 22:55:31733<tt>committer</tt>, and <tt>tagger</tt>) can be suffixed with <tt>name</tt>, <tt>email</tt>,
Junio C Hamanoba4b9282008-07-06 05:20:31734and <tt>date</tt> to extract the named component.</p></div>
Junio C Hamano8fb66e52011-10-05 20:59:51735<div class="paragraph"><p>The complete message in a commit and tag object is <tt>contents</tt>.
Junio C Hamano281fd392012-09-17 23:57:41736Its first line is <tt>contents:subject</tt>, where subject is the concatenation
737of all lines of the commit message up to the first blank line. The next
738line is <em>contents:body</em>, where body is all of the lines after the first
739blank line. Finally, the optional GPG signature is <tt>contents:signature</tt>.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59740<div class="paragraph"><p>For sorting purposes, fields with numeric values sort in numeric
Junio C Hamanoff4b4312006-10-25 22:55:31741order (<tt>objectsize</tt>, <tt>authordate</tt>, <tt>committerdate</tt>, <tt>taggerdate</tt>).
Junio C Hamanoba4b9282008-07-06 05:20:31742All other fields are used to sort in their byte-value order.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59743<div class="paragraph"><p>In any case, a field name that refers to a field inapplicable to
Junio C Hamanoff4b4312006-10-25 22:55:31744the object referred by the ref does not cause an error. It
Junio C Hamanoba4b9282008-07-06 05:20:31745returns an empty string instead.</p></div>
Junio C Hamano68cf15a2010-11-06 01:01:59746<div class="paragraph"><p>As a special case for the date-type fields, you may specify a format for
Junio C Hamano1b50ce92007-10-03 12:05:53747the date by adding one of <tt>:default</tt>, <tt>:relative</tt>, <tt>:short</tt>, <tt>:local</tt>,
748<tt>:iso8601</tt> or <tt>:rfc2822</tt> to the end of the fieldname; e.g.
Junio C Hamanoba4b9282008-07-06 05:20:31749<tt>%(taggerdate:relative)</tt>.</p></div>
Junio C Hamanoff4b4312006-10-25 22:55:31750</div>
Junio C Hamanoba4b9282008-07-06 05:20:31751<h2 id="_examples">EXAMPLES</h2>
Junio C Hamanoff4b4312006-10-25 22:55:31752<div class="sectionbody">
Junio C Hamano68cf15a2010-11-06 01:01:59753<div class="paragraph"><p>An example directly producing formatted text. Show the most recent
Junio C Hamanoa8cc1d82011-03-10 01:18:127543 tagged commits:</p></div>
Junio C Hamanoff4b4312006-10-25 22:55:31755<div class="listingblock">
756<div class="content">
757<pre><tt>#!/bin/sh
758
Junio C Hamanofce7c7e2008-07-02 03:06:38759git for-each-ref --count=3 --sort='-*authordate' \
Junio C Hamanoff4b4312006-10-25 22:55:31760--format='From: %(*authorname) %(*authoremail)
761Subject: %(*subject)
762Date: %(*authordate)
763Ref: %(*refname)
764
765%(*body)
766' 'refs/tags'</tt></pre>
767</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:59768<div class="paragraph"><p>A simple example showing the use of shell eval on the output,
Junio C Hamanoa8cc1d82011-03-10 01:18:12769demonstrating the use of --shell. List the prefixes of all heads:</p></div>
Junio C Hamanoff4b4312006-10-25 22:55:31770<div class="listingblock">
771<div class="content">
772<pre><tt>#!/bin/sh
773
Junio C Hamanofce7c7e2008-07-02 03:06:38774git for-each-ref --shell --format="ref=%(refname)" refs/heads | \
Junio C Hamanoff4b4312006-10-25 22:55:31775while read entry
776do
777 eval "$entry"
778 echo `dirname $ref`
779done</tt></pre>
780</div></div>
Junio C Hamano68cf15a2010-11-06 01:01:59781<div class="paragraph"><p>A bit more elaborate report on tags, demonstrating that the format
Junio C Hamanoa8cc1d82011-03-10 01:18:12782may be an entire script:</p></div>
Junio C Hamanoff4b4312006-10-25 22:55:31783<div class="listingblock">
784<div class="content">
785<pre><tt>#!/bin/sh
786
787fmt='
788 r=%(refname)
789 t=%(*objecttype)
790 T=${r#refs/tags/}
791
792 o=%(*objectname)
793 n=%(*authorname)
794 e=%(*authoremail)
795 s=%(*subject)
796 d=%(*authordate)
797 b=%(*body)
798
799 kind=Tag
800 if test "z$t" = z
801 then
802 # could be a lightweight tag
803 t=%(objecttype)
804 kind="Lightweight tag"
805 o=%(objectname)
806 n=%(authorname)
807 e=%(authoremail)
808 s=%(subject)
809 d=%(authordate)
810 b=%(body)
811 fi
812 echo "$kind $T points at a $t object $o"
813 if test "z$t" = zcommit
814 then
815 echo "The commit was authored by $n $e
816at $d, and titled
817
818 $s
819
820Its message reads as:
821"
822 echo "$b" | sed -e "s/^/ /"
823 echo
824 fi
825'
826
Junio C Hamanofce7c7e2008-07-02 03:06:38827eval=`git for-each-ref --shell --format="$fmt" \
Junio C Hamanoff4b4312006-10-25 22:55:31828 --sort='*objecttype' \
829 --sort=-taggerdate \
830 refs/tags`
831eval "$eval"</tt></pre>
832</div></div>
833</div>
Junio C Hamanoa8cc1d82011-03-10 01:18:12834<h2 id="_author">Author</h2>
835<div class="sectionbody">
836<div class="paragraph"><p>Written by Junio C Hamano &lt;<a href="mailto:gitster@pobox.com">gitster@pobox.com</a>&gt;.</p></div>
837</div>
838<h2 id="_documentation">Documentation</h2>
839<div class="sectionbody">
840<div class="paragraph"><p>Documentation by Junio C Hamano and the git-list &lt;<a href="mailto:git@vger.kernel.org">git@vger.kernel.org</a>&gt;.</p></div>
841</div>
842<h2 id="_git">GIT</h2>
843<div class="sectionbody">
Junio C Hamanoa28a9202012-06-21 07:08:23844<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
Junio C Hamanoa8cc1d82011-03-10 01:18:12845</div>
Junio C Hamano7bd050f2011-09-22 06:32:22846</div>
847<div id="footnotes"><hr /></div>
Junio C Hamanoff4b4312006-10-25 22:55:31848<div id="footer">
849<div id="footer-text">
Junio C Hamano281fd392012-09-17 23:57:41850Last updated 2012-09-17 16:55:59 PDT
Junio C Hamanoff4b4312006-10-25 22:55:31851</div>
852</div>
853</body>
854</html>