"Fossies" - the Fresh Open Source Software Archive

Member "git-worktree.html" (15 Dec 2018, 37814 Bytes) of package /linux/misc/git-htmldocs-2.20.1.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 <?xml version="1.0" encoding="UTF-8"?>
    2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    3     "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    5 <head>
    6 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
    7 <meta name="generator" content="AsciiDoc 8.6.10" />
    8 <title>git-worktree(1)</title>
    9 <style type="text/css">
   10 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
   11 
   12 /* Default font. */
   13 body {
   14   font-family: Georgia,serif;
   15 }
   16 
   17 /* Title font. */
   18 h1, h2, h3, h4, h5, h6,
   19 div.title, caption.title,
   20 thead, p.table.header,
   21 #toctitle,
   22 #author, #revnumber, #revdate, #revremark,
   23 #footer {
   24   font-family: Arial,Helvetica,sans-serif;
   25 }
   26 
   27 body {
   28   margin: 1em 5% 1em 5%;
   29 }
   30 
   31 a {
   32   color: blue;
   33   text-decoration: underline;
   34 }
   35 a:visited {
   36   color: fuchsia;
   37 }
   38 
   39 em {
   40   font-style: italic;
   41   color: navy;
   42 }
   43 
   44 strong {
   45   font-weight: bold;
   46   color: #083194;
   47 }
   48 
   49 h1, h2, h3, h4, h5, h6 {
   50   color: #527bbd;
   51   margin-top: 1.2em;
   52   margin-bottom: 0.5em;
   53   line-height: 1.3;
   54 }
   55 
   56 h1, h2, h3 {
   57   border-bottom: 2px solid silver;
   58 }
   59 h2 {
   60   padding-top: 0.5em;
   61 }
   62 h3 {
   63   float: left;
   64 }
   65 h3 + * {
   66   clear: left;
   67 }
   68 h5 {
   69   font-size: 1.0em;
   70 }
   71 
   72 div.sectionbody {
   73   margin-left: 0;
   74 }
   75 
   76 hr {
   77   border: 1px solid silver;
   78 }
   79 
   80 p {
   81   margin-top: 0.5em;
   82   margin-bottom: 0.5em;
   83 }
   84 
   85 ul, ol, li > p {
   86   margin-top: 0;
   87 }
   88 ul > li     { color: #aaa; }
   89 ul > li > * { color: black; }
   90 
   91 .monospaced, code, pre {
   92   font-family: "Courier New", Courier, monospace;
   93   font-size: inherit;
   94   color: navy;
   95   padding: 0;
   96   margin: 0;
   97 }
   98 pre {
   99   white-space: pre-wrap;
  100 }
  101 
  102 #author {
  103   color: #527bbd;
  104   font-weight: bold;
  105   font-size: 1.1em;
  106 }
  107 #email {
  108 }
  109 #revnumber, #revdate, #revremark {
  110 }
  111 
  112 #footer {
  113   font-size: small;
  114   border-top: 2px solid silver;
  115   padding-top: 0.5em;
  116   margin-top: 4.0em;
  117 }
  118 #footer-text {
  119   float: left;
  120   padding-bottom: 0.5em;
  121 }
  122 #footer-badges {
  123   float: right;
  124   padding-bottom: 0.5em;
  125 }
  126 
  127 #preamble {
  128   margin-top: 1.5em;
  129   margin-bottom: 1.5em;
  130 }
  131 div.imageblock, div.exampleblock, div.verseblock,
  132 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
  133 div.admonitionblock {
  134   margin-top: 1.0em;
  135   margin-bottom: 1.5em;
  136 }
  137 div.admonitionblock {
  138   margin-top: 2.0em;
  139   margin-bottom: 2.0em;
  140   margin-right: 10%;
  141   color: #606060;
  142 }
  143 
  144 div.content { /* Block element content. */
  145   padding: 0;
  146 }
  147 
  148 /* Block element titles. */
  149 div.title, caption.title {
  150   color: #527bbd;
  151   font-weight: bold;
  152   text-align: left;
  153   margin-top: 1.0em;
  154   margin-bottom: 0.5em;
  155 }
  156 div.title + * {
  157   margin-top: 0;
  158 }
  159 
  160 td div.title:first-child {
  161   margin-top: 0.0em;
  162 }
  163 div.content div.title:first-child {
  164   margin-top: 0.0em;
  165 }
  166 div.content + div.title {
  167   margin-top: 0.0em;
  168 }
  169 
  170 div.sidebarblock > div.content {
  171   background: #ffffee;
  172   border: 1px solid #dddddd;
  173   border-left: 4px solid #f0f0f0;
  174   padding: 0.5em;
  175 }
  176 
  177 div.listingblock > div.content {
  178   border: 1px solid #dddddd;
  179   border-left: 5px solid #f0f0f0;
  180   background: #f8f8f8;
  181   padding: 0.5em;
  182 }
  183 
  184 div.quoteblock, div.verseblock {
  185   padding-left: 1.0em;
  186   margin-left: 1.0em;
  187   margin-right: 10%;
  188   border-left: 5px solid #f0f0f0;
  189   color: #888;
  190 }
  191 
  192 div.quoteblock > div.attribution {
  193   padding-top: 0.5em;
  194   text-align: right;
  195 }
  196 
  197 div.verseblock > pre.content {
  198   font-family: inherit;
  199   font-size: inherit;
  200 }
  201 div.verseblock > div.attribution {
  202   padding-top: 0.75em;
  203   text-align: left;
  204 }
  205 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
  206 div.verseblock + div.attribution {
  207   text-align: left;
  208 }
  209 
  210 div.admonitionblock .icon {
  211   vertical-align: top;
  212   font-size: 1.1em;
  213   font-weight: bold;
  214   text-decoration: underline;
  215   color: #527bbd;
  216   padding-right: 0.5em;
  217 }
  218 div.admonitionblock td.content {
  219   padding-left: 0.5em;
  220   border-left: 3px solid #dddddd;
  221 }
  222 
  223 div.exampleblock > div.content {
  224   border-left: 3px solid #dddddd;
  225   padding-left: 0.5em;
  226 }
  227 
  228 div.imageblock div.content { padding-left: 0; }
  229 span.image img { border-style: none; vertical-align: text-bottom; }
  230 a.image:visited { color: white; }
  231 
  232 dl {
  233   margin-top: 0.8em;
  234   margin-bottom: 0.8em;
  235 }
  236 dt {
  237   margin-top: 0.5em;
  238   margin-bottom: 0;
  239   font-style: normal;
  240   color: navy;
  241 }
  242 dd > *:first-child {
  243   margin-top: 0.1em;
  244 }
  245 
  246 ul, ol {
  247     list-style-position: outside;
  248 }
  249 ol.arabic {
  250   list-style-type: decimal;
  251 }
  252 ol.loweralpha {
  253   list-style-type: lower-alpha;
  254 }
  255 ol.upperalpha {
  256   list-style-type: upper-alpha;
  257 }
  258 ol.lowerroman {
  259   list-style-type: lower-roman;
  260 }
  261 ol.upperroman {
  262   list-style-type: upper-roman;
  263 }
  264 
  265 div.compact ul, div.compact ol,
  266 div.compact p, div.compact p,
  267 div.compact div, div.compact div {
  268   margin-top: 0.1em;
  269   margin-bottom: 0.1em;
  270 }
  271 
  272 tfoot {
  273   font-weight: bold;
  274 }
  275 td > div.verse {
  276   white-space: pre;
  277 }
  278 
  279 div.hdlist {
  280   margin-top: 0.8em;
  281   margin-bottom: 0.8em;
  282 }
  283 div.hdlist tr {
  284   padding-bottom: 15px;
  285 }
  286 dt.hdlist1.strong, td.hdlist1.strong {
  287   font-weight: bold;
  288 }
  289 td.hdlist1 {
  290   vertical-align: top;
  291   font-style: normal;
  292   padding-right: 0.8em;
  293   color: navy;
  294 }
  295 td.hdlist2 {
  296   vertical-align: top;
  297 }
  298 div.hdlist.compact tr {
  299   margin: 0;
  300   padding-bottom: 0;
  301 }
  302 
  303 .comment {
  304   background: yellow;
  305 }
  306 
  307 .footnote, .footnoteref {
  308   font-size: 0.8em;
  309 }
  310 
  311 span.footnote, span.footnoteref {
  312   vertical-align: super;
  313 }
  314 
  315 #footnotes {
  316   margin: 20px 0 20px 0;
  317   padding: 7px 0 0 0;
  318 }
  319 
  320 #footnotes div.footnote {
  321   margin: 0 0 5px 0;
  322 }
  323 
  324 #footnotes hr {
  325   border: none;
  326   border-top: 1px solid silver;
  327   height: 1px;
  328   text-align: left;
  329   margin-left: 0;
  330   width: 20%;
  331   min-width: 100px;
  332 }
  333 
  334 div.colist td {
  335   padding-right: 0.5em;
  336   padding-bottom: 0.3em;
  337   vertical-align: top;
  338 }
  339 div.colist td img {
  340   margin-top: 0.3em;
  341 }
  342 
  343 @media print {
  344   #footer-badges { display: none; }
  345 }
  346 
  347 #toc {
  348   margin-bottom: 2.5em;
  349 }
  350 
  351 #toctitle {
  352   color: #527bbd;
  353   font-size: 1.1em;
  354   font-weight: bold;
  355   margin-top: 1.0em;
  356   margin-bottom: 0.1em;
  357 }
  358 
  359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  360   margin-top: 0;
  361   margin-bottom: 0;
  362 }
  363 div.toclevel2 {
  364   margin-left: 2em;
  365   font-size: 0.9em;
  366 }
  367 div.toclevel3 {
  368   margin-left: 4em;
  369   font-size: 0.9em;
  370 }
  371 div.toclevel4 {
  372   margin-left: 6em;
  373   font-size: 0.9em;
  374 }
  375 
  376 span.aqua { color: aqua; }
  377 span.black { color: black; }
  378 span.blue { color: blue; }
  379 span.fuchsia { color: fuchsia; }
  380 span.gray { color: gray; }
  381 span.green { color: green; }
  382 span.lime { color: lime; }
  383 span.maroon { color: maroon; }
  384 span.navy { color: navy; }
  385 span.olive { color: olive; }
  386 span.purple { color: purple; }
  387 span.red { color: red; }
  388 span.silver { color: silver; }
  389 span.teal { color: teal; }
  390 span.white { color: white; }
  391 span.yellow { color: yellow; }
  392 
  393 span.aqua-background { background: aqua; }
  394 span.black-background { background: black; }
  395 span.blue-background { background: blue; }
  396 span.fuchsia-background { background: fuchsia; }
  397 span.gray-background { background: gray; }
  398 span.green-background { background: green; }
  399 span.lime-background { background: lime; }
  400 span.maroon-background { background: maroon; }
  401 span.navy-background { background: navy; }
  402 span.olive-background { background: olive; }
  403 span.purple-background { background: purple; }
  404 span.red-background { background: red; }
  405 span.silver-background { background: silver; }
  406 span.teal-background { background: teal; }
  407 span.white-background { background: white; }
  408 span.yellow-background { background: yellow; }
  409 
  410 span.big { font-size: 2em; }
  411 span.small { font-size: 0.6em; }
  412 
  413 span.underline { text-decoration: underline; }
  414 span.overline { text-decoration: overline; }
  415 span.line-through { text-decoration: line-through; }
  416 
  417 div.unbreakable { page-break-inside: avoid; }
  418 
  419 
  420 /*
  421  * xhtml11 specific
  422  *
  423  * */
  424 
  425 div.tableblock {
  426   margin-top: 1.0em;
  427   margin-bottom: 1.5em;
  428 }
  429 div.tableblock > table {
  430   border: 3px solid #527bbd;
  431 }
  432 thead, p.table.header {
  433   font-weight: bold;
  434   color: #527bbd;
  435 }
  436 p.table {
  437   margin-top: 0;
  438 }
  439 /* Because the table frame attribute is overriden by CSS in most browsers. */
  440 div.tableblock > table[frame="void"] {
  441   border-style: none;
  442 }
  443 div.tableblock > table[frame="hsides"] {
  444   border-left-style: none;
  445   border-right-style: none;
  446 }
  447 div.tableblock > table[frame="vsides"] {
  448   border-top-style: none;
  449   border-bottom-style: none;
  450 }
  451 
  452 
  453 /*
  454  * html5 specific
  455  *
  456  * */
  457 
  458 table.tableblock {
  459   margin-top: 1.0em;
  460   margin-bottom: 1.5em;
  461 }
  462 thead, p.tableblock.header {
  463   font-weight: bold;
  464   color: #527bbd;
  465 }
  466 p.tableblock {
  467   margin-top: 0;
  468 }
  469 table.tableblock {
  470   border-width: 3px;
  471   border-spacing: 0px;
  472   border-style: solid;
  473   border-color: #527bbd;
  474   border-collapse: collapse;
  475 }
  476 th.tableblock, td.tableblock {
  477   border-width: 1px;
  478   padding: 4px;
  479   border-style: solid;
  480   border-color: #527bbd;
  481 }
  482 
  483 table.tableblock.frame-topbot {
  484   border-left-style: hidden;
  485   border-right-style: hidden;
  486 }
  487 table.tableblock.frame-sides {
  488   border-top-style: hidden;
  489   border-bottom-style: hidden;
  490 }
  491 table.tableblock.frame-none {
  492   border-style: hidden;
  493 }
  494 
  495 th.tableblock.halign-left, td.tableblock.halign-left {
  496   text-align: left;
  497 }
  498 th.tableblock.halign-center, td.tableblock.halign-center {
  499   text-align: center;
  500 }
  501 th.tableblock.halign-right, td.tableblock.halign-right {
  502   text-align: right;
  503 }
  504 
  505 th.tableblock.valign-top, td.tableblock.valign-top {
  506   vertical-align: top;
  507 }
  508 th.tableblock.valign-middle, td.tableblock.valign-middle {
  509   vertical-align: middle;
  510 }
  511 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
  512   vertical-align: bottom;
  513 }
  514 
  515 
  516 /*
  517  * manpage specific
  518  *
  519  * */
  520 
  521 body.manpage h1 {
  522   padding-top: 0.5em;
  523   padding-bottom: 0.5em;
  524   border-top: 2px solid silver;
  525   border-bottom: 2px solid silver;
  526 }
  527 body.manpage h2 {
  528   border-style: none;
  529 }
  530 body.manpage div.sectionbody {
  531   margin-left: 3em;
  532 }
  533 
  534 @media print {
  535   body.manpage div#toc { display: none; }
  536 }
  537 
  538 
  539 </style>
  540 <script type="text/javascript">
  541 /*<![CDATA[*/
  542 var asciidoc = {  // Namespace.
  543 
  544 /////////////////////////////////////////////////////////////////////
  545 // Table Of Contents generator
  546 /////////////////////////////////////////////////////////////////////
  547 
  548 /* Author: Mihai Bazon, September 2002
  549  * http://students.infoiasi.ro/~mishoo
  550  *
  551  * Table Of Content generator
  552  * Version: 0.4
  553  *
  554  * Feel free to use this script under the terms of the GNU General Public
  555  * License, as long as you do not remove or alter this notice.
  556  */
  557 
  558  /* modified by Troy D. Hanson, September 2006. License: GPL */
  559  /* modified by Stuart Rackham, 2006, 2009. License: GPL */
  560 
  561 // toclevels = 1..4.
  562 toc: function (toclevels) {
  563 
  564   function getText(el) {
  565     var text = "";
  566     for (var i = el.firstChild; i != null; i = i.nextSibling) {
  567       if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
  568         text += i.data;
  569       else if (i.firstChild != null)
  570         text += getText(i);
  571     }
  572     return text;
  573   }
  574 
  575   function TocEntry(el, text, toclevel) {
  576     this.element = el;
  577     this.text = text;
  578     this.toclevel = toclevel;
  579   }
  580 
  581   function tocEntries(el, toclevels) {
  582     var result = new Array;
  583     var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
  584     // Function that scans the DOM tree for header elements (the DOM2
  585     // nodeIterator API would be a better technique but not supported by all
  586     // browsers).
  587     var iterate = function (el) {
  588       for (var i = el.firstChild; i != null; i = i.nextSibling) {
  589         if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
  590           var mo = re.exec(i.tagName);
  591           if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
  592             result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
  593           }
  594           iterate(i);
  595         }
  596       }
  597     }
  598     iterate(el);
  599     return result;
  600   }
  601 
  602   var toc = document.getElementById("toc");
  603   if (!toc) {
  604     return;
  605   }
  606 
  607   // Delete existing TOC entries in case we're reloading the TOC.
  608   var tocEntriesToRemove = [];
  609   var i;
  610   for (i = 0; i < toc.childNodes.length; i++) {
  611     var entry = toc.childNodes[i];
  612     if (entry.nodeName.toLowerCase() == 'div'
  613      && entry.getAttribute("class")
  614      && entry.getAttribute("class").match(/^toclevel/))
  615       tocEntriesToRemove.push(entry);
  616   }
  617   for (i = 0; i < tocEntriesToRemove.length; i++) {
  618     toc.removeChild(tocEntriesToRemove[i]);
  619   }
  620 
  621   // Rebuild TOC entries.
  622   var entries = tocEntries(document.getElementById("content"), toclevels);
  623   for (var i = 0; i < entries.length; ++i) {
  624     var entry = entries[i];
  625     if (entry.element.id == "")
  626       entry.element.id = "_toc_" + i;
  627     var a = document.createElement("a");
  628     a.href = "#" + entry.element.id;
  629     a.appendChild(document.createTextNode(entry.text));
  630     var div = document.createElement("div");
  631     div.appendChild(a);
  632     div.className = "toclevel" + entry.toclevel;
  633     toc.appendChild(div);
  634   }
  635   if (entries.length == 0)
  636     toc.parentNode.removeChild(toc);
  637 },
  638 
  639 
  640 /////////////////////////////////////////////////////////////////////
  641 // Footnotes generator
  642 /////////////////////////////////////////////////////////////////////
  643 
  644 /* Based on footnote generation code from:
  645  * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
  646  */
  647 
  648 footnotes: function () {
  649   // Delete existing footnote entries in case we're reloading the footnodes.
  650   var i;
  651   var noteholder = document.getElementById("footnotes");
  652   if (!noteholder) {
  653     return;
  654   }
  655   var entriesToRemove = [];
  656   for (i = 0; i < noteholder.childNodes.length; i++) {
  657     var entry = noteholder.childNodes[i];
  658     if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
  659       entriesToRemove.push(entry);
  660   }
  661   for (i = 0; i < entriesToRemove.length; i++) {
  662     noteholder.removeChild(entriesToRemove[i]);
  663   }
  664 
  665   // Rebuild footnote entries.
  666   var cont = document.getElementById("content");
  667   var spans = cont.getElementsByTagName("span");
  668   var refs = {};
  669   var n = 0;
  670   for (i=0; i<spans.length; i++) {
  671     if (spans[i].className == "footnote") {
  672       n++;
  673       var note = spans[i].getAttribute("data-note");
  674       if (!note) {
  675         // Use [\s\S] in place of . so multi-line matches work.
  676         // Because JavaScript has no s (dotall) regex flag.
  677         note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
  678         spans[i].innerHTML =
  679           "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
  680           "' title='View footnote' class='footnote'>" + n + "</a>]";
  681         spans[i].setAttribute("data-note", note);
  682       }
  683       noteholder.innerHTML +=
  684         "<div class='footnote' id='_footnote_" + n + "'>" +
  685         "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
  686         n + "</a>. " + note + "</div>";
  687       var id =spans[i].getAttribute("id");
  688       if (id != null) refs["#"+id] = n;
  689     }
  690   }
  691   if (n == 0)
  692     noteholder.parentNode.removeChild(noteholder);
  693   else {
  694     // Process footnoterefs.
  695     for (i=0; i<spans.length; i++) {
  696       if (spans[i].className == "footnoteref") {
  697         var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
  698         href = href.match(/#.*/)[0];  // Because IE return full URL.
  699         n = refs[href];
  700         spans[i].innerHTML =
  701           "[<a href='#_footnote_" + n +
  702           "' title='View footnote' class='footnote'>" + n + "</a>]";
  703       }
  704     }
  705   }
  706 },
  707 
  708 install: function(toclevels) {
  709   var timerId;
  710 
  711   function reinstall() {
  712     asciidoc.footnotes();
  713     if (toclevels) {
  714       asciidoc.toc(toclevels);
  715     }
  716   }
  717 
  718   function reinstallAndRemoveTimer() {
  719     clearInterval(timerId);
  720     reinstall();
  721   }
  722 
  723   timerId = setInterval(reinstall, 500);
  724   if (document.addEventListener)
  725     document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
  726   else
  727     window.onload = reinstallAndRemoveTimer;
  728 }
  729 
  730 }
  731 asciidoc.install();
  732 /*]]>*/
  733 </script>
  734 </head>
  735 <body class="manpage">
  736 <div id="header">
  737 <h1>
  738 git-worktree(1) Manual Page
  739 </h1>
  740 <h2>NAME</h2>
  741 <div class="sectionbody">
  742 <p>git-worktree -
  743    Manage multiple working trees
  744 </p>
  745 </div>
  746 </div>
  747 <div id="content">
  748 <div class="sect1">
  749 <h2 id="_synopsis">SYNOPSIS</h2>
  750 <div class="sectionbody">
  751 <div class="verseblock">
  752 <pre class="content"><em>git worktree add</em> [-f] [--detach] [--checkout] [--lock] [-b &lt;new-branch&gt;] &lt;path&gt; [&lt;commit-ish&gt;]
  753 <em>git worktree list</em> [--porcelain]
  754 <em>git worktree lock</em> [--reason &lt;string&gt;] &lt;worktree&gt;
  755 <em>git worktree move</em> &lt;worktree&gt; &lt;new-path&gt;
  756 <em>git worktree prune</em> [-n] [-v] [--expire &lt;expire&gt;]
  757 <em>git worktree remove</em> [-f] &lt;worktree&gt;
  758 <em>git worktree unlock</em> &lt;worktree&gt;</pre>
  759 <div class="attribution">
  760 </div></div>
  761 </div>
  762 </div>
  763 <div class="sect1">
  764 <h2 id="_description">DESCRIPTION</h2>
  765 <div class="sectionbody">
  766 <div class="paragraph"><p>Manage multiple working trees attached to the same repository.</p></div>
  767 <div class="paragraph"><p>A git repository can support multiple working trees, allowing you to check
  768 out more than one branch at a time.  With <code>git worktree add</code> a new working
  769 tree is associated with the repository.  This new working tree is called a
  770 "linked working tree" as opposed to the "main working tree" prepared by "git
  771 init" or "git clone".  A repository has one main working tree (if it&#8217;s not a
  772 bare repository) and zero or more linked working trees. When you are done
  773 with a linked working tree, remove it with <code>git worktree remove</code>.</p></div>
  774 <div class="paragraph"><p>If a working tree is deleted without using <code>git worktree remove</code>, then
  775 its associated administrative files, which reside in the repository
  776 (see "DETAILS" below), will eventually be removed automatically (see
  777 <code>gc.worktreePruneExpire</code> in <a href="git-config.html">git-config(1)</a>), or you can run
  778 <code>git worktree prune</code> in the main or any linked working tree to
  779 clean up any stale administrative files.</p></div>
  780 <div class="paragraph"><p>If a linked working tree is stored on a portable device or network share
  781 which is not always mounted, you can prevent its administrative files from
  782 being pruned by issuing the <code>git worktree lock</code> command, optionally
  783 specifying <code>--reason</code> to explain why the working tree is locked.</p></div>
  784 </div>
  785 </div>
  786 <div class="sect1">
  787 <h2 id="_commands">COMMANDS</h2>
  788 <div class="sectionbody">
  789 <div class="dlist"><dl>
  790 <dt class="hdlist1">
  791 add &lt;path&gt; [&lt;commit-ish&gt;]
  792 </dt>
  793 <dd>
  794 <p>
  795 Create <code>&lt;path&gt;</code> and checkout <code>&lt;commit-ish&gt;</code> into it. The new working directory
  796 is linked to the current repository, sharing everything except working
  797 directory specific files such as HEAD, index, etc. <code>-</code> may also be
  798 specified as <code>&lt;commit-ish&gt;</code>; it is synonymous with <code>@{-1}</code>.
  799 </p>
  800 <div class="paragraph"><p>If &lt;commit-ish&gt; is a branch name (call it <code>&lt;branch&gt;</code>) and is not found,
  801 and neither <code>-b</code> nor <code>-B</code> nor <code>--detach</code> are used, but there does
  802 exist a tracking branch in exactly one remote (call it <code>&lt;remote&gt;</code>)
  803 with a matching name, treat as equivalent to:</p></div>
  804 <div class="listingblock">
  805 <div class="content">
  806 <pre><code>$ git worktree add --track -b &lt;branch&gt; &lt;path&gt; &lt;remote&gt;/&lt;branch&gt;</code></pre>
  807 </div></div>
  808 <div class="paragraph"><p>If the branch exists in multiple remotes and one of them is named by
  809 the <code>checkout.defaultRemote</code> configuration variable, we&#8217;ll use that
  810 one for the purposes of disambiguation, even if the <code>&lt;branch&gt;</code> isn&#8217;t
  811 unique across all remotes. Set it to
  812 e.g. <code>checkout.defaultRemote=origin</code> to always checkout remote
  813 branches from there if <code>&lt;branch&gt;</code> is ambiguous but exists on the
  814 <em>origin</em> remote. See also <code>checkout.defaultRemote</code> in
  815 <a href="git-config.html">git-config(1)</a>.</p></div>
  816 <div class="paragraph"><p>If <code>&lt;commit-ish&gt;</code> is omitted and neither <code>-b</code> nor <code>-B</code> nor <code>--detach</code> used,
  817 then, as a convenience, the new worktree is associated with a branch
  818 (call it <code>&lt;branch&gt;</code>) named after <code>$(basename &lt;path&gt;)</code>.  If <code>&lt;branch&gt;</code>
  819 doesn&#8217;t exist, a new branch based on HEAD is automatically created as
  820 if <code>-b &lt;branch&gt;</code> was given.  If <code>&lt;branch&gt;</code> does exist, it will be
  821 checked out in the new worktree, if it&#8217;s not checked out anywhere
  822 else, otherwise the command will refuse to create the worktree (unless
  823 <code>--force</code> is used).</p></div>
  824 </dd>
  825 <dt class="hdlist1">
  826 list
  827 </dt>
  828 <dd>
  829 <p>
  830 List details of each worktree.  The main worktree is listed first, followed by
  831 each of the linked worktrees.  The output details include if the worktree is
  832 bare, the revision currently checked out, and the branch currently checked out
  833 (or <em>detached HEAD</em> if none).
  834 </p>
  835 </dd>
  836 <dt class="hdlist1">
  837 lock
  838 </dt>
  839 <dd>
  840 <p>
  841 If a working tree is on a portable device or network share which
  842 is not always mounted, lock it to prevent its administrative
  843 files from being pruned automatically. This also prevents it from
  844 being moved or deleted. Optionally, specify a reason for the lock
  845 with <code>--reason</code>.
  846 </p>
  847 </dd>
  848 <dt class="hdlist1">
  849 move
  850 </dt>
  851 <dd>
  852 <p>
  853 Move a working tree to a new location. Note that the main working tree
  854 or linked working trees containing submodules cannot be moved.
  855 </p>
  856 </dd>
  857 <dt class="hdlist1">
  858 prune
  859 </dt>
  860 <dd>
  861 <p>
  862 Prune working tree information in $GIT_DIR/worktrees.
  863 </p>
  864 </dd>
  865 <dt class="hdlist1">
  866 remove
  867 </dt>
  868 <dd>
  869 <p>
  870 Remove a working tree. Only clean working trees (no untracked files
  871 and no modification in tracked files) can be removed. Unclean working
  872 trees or ones with submodules can be removed with <code>--force</code>. The main
  873 working tree cannot be removed.
  874 </p>
  875 </dd>
  876 <dt class="hdlist1">
  877 unlock
  878 </dt>
  879 <dd>
  880 <p>
  881 Unlock a working tree, allowing it to be pruned, moved or deleted.
  882 </p>
  883 </dd>
  884 </dl></div>
  885 </div>
  886 </div>
  887 <div class="sect1">
  888 <h2 id="_options">OPTIONS</h2>
  889 <div class="sectionbody">
  890 <div class="dlist"><dl>
  891 <dt class="hdlist1">
  892 -f
  893 </dt>
  894 <dt class="hdlist1">
  895 --force
  896 </dt>
  897 <dd>
  898 <p>
  899         By default, <code>add</code> refuses to create a new working tree when
  900         <code>&lt;commit-ish&gt;</code> is a branch name and is already checked out by
  901         another working tree, or if <code>&lt;path&gt;</code> is already assigned to some
  902         working tree but is missing (for instance, if <code>&lt;path&gt;</code> was deleted
  903         manually). This option overrides these safeguards. To add a missing but
  904         locked working tree path, specify <code>--force</code> twice.
  905 </p>
  906 <div class="paragraph"><p><code>move</code> refuses to move a locked working tree unless <code>--force</code> is specified
  907 twice.</p></div>
  908 <div class="paragraph"><p><code>remove</code> refuses to remove an unclean working tree unless <code>--force</code> is used.
  909 To remove a locked working tree, specify <code>--force</code> twice.</p></div>
  910 </dd>
  911 <dt class="hdlist1">
  912 -b &lt;new-branch&gt;
  913 </dt>
  914 <dt class="hdlist1">
  915 -B &lt;new-branch&gt;
  916 </dt>
  917 <dd>
  918 <p>
  919         With <code>add</code>, create a new branch named <code>&lt;new-branch&gt;</code> starting at
  920         <code>&lt;commit-ish&gt;</code>, and check out <code>&lt;new-branch&gt;</code> into the new working tree.
  921         If <code>&lt;commit-ish&gt;</code> is omitted, it defaults to HEAD.
  922         By default, <code>-b</code> refuses to create a new branch if it already
  923         exists. <code>-B</code> overrides this safeguard, resetting <code>&lt;new-branch&gt;</code> to
  924         <code>&lt;commit-ish&gt;</code>.
  925 </p>
  926 </dd>
  927 <dt class="hdlist1">
  928 --detach
  929 </dt>
  930 <dd>
  931 <p>
  932         With <code>add</code>, detach HEAD in the new working tree. See "DETACHED HEAD"
  933         in <a href="git-checkout.html">git-checkout(1)</a>.
  934 </p>
  935 </dd>
  936 <dt class="hdlist1">
  937 --[no-]checkout
  938 </dt>
  939 <dd>
  940 <p>
  941         By default, <code>add</code> checks out <code>&lt;commit-ish&gt;</code>, however, <code>--no-checkout</code> can
  942         be used to suppress checkout in order to make customizations,
  943         such as configuring sparse-checkout. See "Sparse checkout"
  944         in <a href="git-read-tree.html">git-read-tree(1)</a>.
  945 </p>
  946 </dd>
  947 <dt class="hdlist1">
  948 --[no-]guess-remote
  949 </dt>
  950 <dd>
  951 <p>
  952         With <code>worktree add &lt;path&gt;</code>, without <code>&lt;commit-ish&gt;</code>, instead
  953         of creating a new branch from HEAD, if there exists a tracking
  954         branch in exactly one remote matching the basename of <code>&lt;path&gt;</code>,
  955         base the new branch on the remote-tracking branch, and mark
  956         the remote-tracking branch as "upstream" from the new branch.
  957 </p>
  958 <div class="paragraph"><p>This can also be set up as the default behaviour by using the
  959 <code>worktree.guessRemote</code> config option.</p></div>
  960 </dd>
  961 <dt class="hdlist1">
  962 --[no-]track
  963 </dt>
  964 <dd>
  965 <p>
  966         When creating a new branch, if <code>&lt;commit-ish&gt;</code> is a branch,
  967         mark it as "upstream" from the new branch.  This is the
  968         default if <code>&lt;commit-ish&gt;</code> is a remote-tracking branch.  See
  969         "--track" in <a href="git-branch.html">git-branch(1)</a> for details.
  970 </p>
  971 </dd>
  972 <dt class="hdlist1">
  973 --lock
  974 </dt>
  975 <dd>
  976 <p>
  977         Keep the working tree locked after creation. This is the
  978         equivalent of <code>git worktree lock</code> after <code>git worktree add</code>,
  979         but without race condition.
  980 </p>
  981 </dd>
  982 <dt class="hdlist1">
  983 -n
  984 </dt>
  985 <dt class="hdlist1">
  986 --dry-run
  987 </dt>
  988 <dd>
  989 <p>
  990         With <code>prune</code>, do not remove anything; just report what it would
  991         remove.
  992 </p>
  993 </dd>
  994 <dt class="hdlist1">
  995 --porcelain
  996 </dt>
  997 <dd>
  998 <p>
  999         With <code>list</code>, output in an easy-to-parse format for scripts.
 1000         This format will remain stable across Git versions and regardless of user
 1001         configuration.  See below for details.
 1002 </p>
 1003 </dd>
 1004 <dt class="hdlist1">
 1005 -q
 1006 </dt>
 1007 <dt class="hdlist1">
 1008 --quiet
 1009 </dt>
 1010 <dd>
 1011 <p>
 1012         With <em>add</em>, suppress feedback messages.
 1013 </p>
 1014 </dd>
 1015 <dt class="hdlist1">
 1016 -v
 1017 </dt>
 1018 <dt class="hdlist1">
 1019 --verbose
 1020 </dt>
 1021 <dd>
 1022 <p>
 1023         With <code>prune</code>, report all removals.
 1024 </p>
 1025 </dd>
 1026 <dt class="hdlist1">
 1027 --expire &lt;time&gt;
 1028 </dt>
 1029 <dd>
 1030 <p>
 1031         With <code>prune</code>, only expire unused working trees older than &lt;time&gt;.
 1032 </p>
 1033 </dd>
 1034 <dt class="hdlist1">
 1035 --reason &lt;string&gt;
 1036 </dt>
 1037 <dd>
 1038 <p>
 1039         With <code>lock</code>, an explanation why the working tree is locked.
 1040 </p>
 1041 </dd>
 1042 <dt class="hdlist1">
 1043 &lt;worktree&gt;
 1044 </dt>
 1045 <dd>
 1046 <p>
 1047         Working trees can be identified by path, either relative or
 1048         absolute.
 1049 </p>
 1050 <div class="paragraph"><p>If the last path components in the working tree&#8217;s path is unique among
 1051 working trees, it can be used to identify worktrees. For example if
 1052 you only have two working trees, at "/abc/def/ghi" and "/abc/def/ggg",
 1053 then "ghi" or "def/ghi" is enough to point to the former working tree.</p></div>
 1054 </dd>
 1055 </dl></div>
 1056 </div>
 1057 </div>
 1058 <div class="sect1">
 1059 <h2 id="_refs">REFS</h2>
 1060 <div class="sectionbody">
 1061 <div class="paragraph"><p>In multiple working trees, some refs may be shared between all working
 1062 trees, some refs are local. One example is HEAD is different for all
 1063 working trees. This section is about the sharing rules and how to access
 1064 refs of one working tree from another.</p></div>
 1065 <div class="paragraph"><p>In general, all pseudo refs are per working tree and all refs starting
 1066 with "refs/" are shared. Pseudo refs are ones like HEAD which are
 1067 directly under GIT_DIR instead of inside GIT_DIR/refs. There are one
 1068 exception to this: refs inside refs/bisect and refs/worktree is not
 1069 shared.</p></div>
 1070 <div class="paragraph"><p>Refs that are per working tree can still be accessed from another
 1071 working tree via two special paths, main-worktree and worktrees. The
 1072 former gives access to per-worktree refs of the main working tree,
 1073 while the latter to all linked working trees.</p></div>
 1074 <div class="paragraph"><p>For example, main-worktree/HEAD or main-worktree/refs/bisect/good
 1075 resolve to the same value as the main working tree&#8217;s HEAD and
 1076 refs/bisect/good respectively. Similarly, worktrees/foo/HEAD or
 1077 worktrees/bar/refs/bisect/bad are the same as
 1078 GIT_COMMON_DIR/worktrees/foo/HEAD and
 1079 GIT_COMMON_DIR/worktrees/bar/refs/bisect/bad.</p></div>
 1080 <div class="paragraph"><p>To access refs, it&#8217;s best not to look inside GIT_DIR directly. Instead
 1081 use commands such as <a href="git-rev-parse.html">git-rev-parse(1)</a> or <a href="git-update-ref.html">git-update-ref(1)</a>
 1082 which will handle refs correctly.</p></div>
 1083 </div>
 1084 </div>
 1085 <div class="sect1">
 1086 <h2 id="_configuration_file">CONFIGURATION FILE</h2>
 1087 <div class="sectionbody">
 1088 <div class="paragraph"><p>By default, the repository "config" file is shared across all working
 1089 trees. If the config variables <code>core.bare</code> or <code>core.worktree</code> are
 1090 already present in the config file, they will be applied to the main
 1091 working trees only.</p></div>
 1092 <div class="paragraph"><p>In order to have configuration specific to working trees, you can turn
 1093 on "worktreeConfig" extension, e.g.:</p></div>
 1094 <div class="listingblock">
 1095 <div class="content">
 1096 <pre><code>$ git config extensions.worktreeConfig true</code></pre>
 1097 </div></div>
 1098 <div class="paragraph"><p>In this mode, specific configuration stays in the path pointed by <code>git
 1099 rev-parse --git-path config.worktree</code>. You can add or update
 1100 configuration in this file with <code>git config --worktree</code>. Older Git
 1101 versions will refuse to access repositories with this extension.</p></div>
 1102 <div class="paragraph"><p>Note that in this file, the exception for <code>core.bare</code> and <code>core.worktree</code>
 1103 is gone. If you have them in $GIT_DIR/config before, you must move
 1104 them to the <code>config.worktree</code> of the main working tree. You may also
 1105 take this opportunity to review and move other configuration that you
 1106 do not want to share to all working trees:</p></div>
 1107 <div class="ulist"><ul>
 1108 <li>
 1109 <p>
 1110 <code>core.worktree</code> and <code>core.bare</code> should never be shared
 1111 </p>
 1112 </li>
 1113 <li>
 1114 <p>
 1115 <code>core.sparseCheckout</code> is recommended per working tree, unless you
 1116    are sure you always use sparse checkout for all working trees.
 1117 </p>
 1118 </li>
 1119 </ul></div>
 1120 </div>
 1121 </div>
 1122 <div class="sect1">
 1123 <h2 id="_details">DETAILS</h2>
 1124 <div class="sectionbody">
 1125 <div class="paragraph"><p>Each linked working tree has a private sub-directory in the repository&#8217;s
 1126 $GIT_DIR/worktrees directory.  The private sub-directory&#8217;s name is usually
 1127 the base name of the linked working tree&#8217;s path, possibly appended with a
 1128 number to make it unique.  For example, when <code>$GIT_DIR=/path/main/.git</code> the
 1129 command <code>git worktree add /path/other/test-next next</code> creates the linked
 1130 working tree in <code>/path/other/test-next</code> and also creates a
 1131 <code>$GIT_DIR/worktrees/test-next</code> directory (or <code>$GIT_DIR/worktrees/test-next1</code>
 1132 if <code>test-next</code> is already taken).</p></div>
 1133 <div class="paragraph"><p>Within a linked working tree, $GIT_DIR is set to point to this private
 1134 directory (e.g. <code>/path/main/.git/worktrees/test-next</code> in the example) and
 1135 $GIT_COMMON_DIR is set to point back to the main working tree&#8217;s $GIT_DIR
 1136 (e.g. <code>/path/main/.git</code>). These settings are made in a <code>.git</code> file located at
 1137 the top directory of the linked working tree.</p></div>
 1138 <div class="paragraph"><p>Path resolution via <code>git rev-parse --git-path</code> uses either
 1139 $GIT_DIR or $GIT_COMMON_DIR depending on the path. For example, in the
 1140 linked working tree <code>git rev-parse --git-path HEAD</code> returns
 1141 <code>/path/main/.git/worktrees/test-next/HEAD</code> (not
 1142 <code>/path/other/test-next/.git/HEAD</code> or <code>/path/main/.git/HEAD</code>) while <code>git
 1143 rev-parse --git-path refs/heads/master</code> uses
 1144 $GIT_COMMON_DIR and returns <code>/path/main/.git/refs/heads/master</code>,
 1145 since refs are shared across all working trees, except refs/bisect and
 1146 refs/worktree.</p></div>
 1147 <div class="paragraph"><p>See <a href="gitrepository-layout.html">gitrepository-layout(5)</a> for more information. The rule of
 1148 thumb is do not make any assumption about whether a path belongs to
 1149 $GIT_DIR or $GIT_COMMON_DIR when you need to directly access something
 1150 inside $GIT_DIR. Use <code>git rev-parse --git-path</code> to get the final path.</p></div>
 1151 <div class="paragraph"><p>If you manually move a linked working tree, you need to update the <em>gitdir</em> file
 1152 in the entry&#8217;s directory. For example, if a linked working tree is moved
 1153 to <code>/newpath/test-next</code> and its <code>.git</code> file points to
 1154 <code>/path/main/.git/worktrees/test-next</code>, then update
 1155 <code>/path/main/.git/worktrees/test-next/gitdir</code> to reference <code>/newpath/test-next</code>
 1156 instead.</p></div>
 1157 <div class="paragraph"><p>To prevent a $GIT_DIR/worktrees entry from being pruned (which
 1158 can be useful in some situations, such as when the
 1159 entry&#8217;s working tree is stored on a portable device), use the
 1160 <code>git worktree lock</code> command, which adds a file named
 1161 <em>locked</em> to the entry&#8217;s directory. The file contains the reason in
 1162 plain text. For example, if a linked working tree&#8217;s <code>.git</code> file points
 1163 to <code>/path/main/.git/worktrees/test-next</code> then a file named
 1164 <code>/path/main/.git/worktrees/test-next/locked</code> will prevent the
 1165 <code>test-next</code> entry from being pruned.  See
 1166 <a href="gitrepository-layout.html">gitrepository-layout(5)</a> for details.</p></div>
 1167 <div class="paragraph"><p>When extensions.worktreeConfig is enabled, the config file
 1168 <code>.git/worktrees/&lt;id&gt;/config.worktree</code> is read after <code>.git/config</code> is.</p></div>
 1169 </div>
 1170 </div>
 1171 <div class="sect1">
 1172 <h2 id="_list_output_format">LIST OUTPUT FORMAT</h2>
 1173 <div class="sectionbody">
 1174 <div class="paragraph"><p>The worktree list command has two output formats.  The default format shows the
 1175 details on a single line with columns.  For example:</p></div>
 1176 <div class="listingblock">
 1177 <div class="content">
 1178 <pre><code>$ git worktree list
 1179 /path/to/bare-source            (bare)
 1180 /path/to/linked-worktree        abcd1234 [master]
 1181 /path/to/other-linked-worktree  1234abc  (detached HEAD)</code></pre>
 1182 </div></div>
 1183 <div class="sect2">
 1184 <h3 id="_porcelain_format">Porcelain Format</h3>
 1185 <div class="paragraph"><p>The porcelain format has a line per attribute.  Attributes are listed with a
 1186 label and value separated by a single space.  Boolean attributes (like <em>bare</em>
 1187 and <em>detached</em>) are listed as a label only, and are only present if and only
 1188 if the value is true.  The first attribute of a worktree is always <code>worktree</code>,
 1189 an empty line indicates the end of the record.  For example:</p></div>
 1190 <div class="listingblock">
 1191 <div class="content">
 1192 <pre><code>$ git worktree list --porcelain
 1193 worktree /path/to/bare-source
 1194 bare
 1195 
 1196 worktree /path/to/linked-worktree
 1197 HEAD abcd1234abcd1234abcd1234abcd1234abcd1234
 1198 branch refs/heads/master
 1199 
 1200 worktree /path/to/other-linked-worktree
 1201 HEAD 1234abc1234abc1234abc1234abc1234abc1234a
 1202 detached</code></pre>
 1203 </div></div>
 1204 </div>
 1205 </div>
 1206 </div>
 1207 <div class="sect1">
 1208 <h2 id="_examples">EXAMPLES</h2>
 1209 <div class="sectionbody">
 1210 <div class="paragraph"><p>You are in the middle of a refactoring session and your boss comes in and
 1211 demands that you fix something immediately. You might typically use
 1212 <a href="git-stash.html">git-stash(1)</a> to store your changes away temporarily, however, your
 1213 working tree is in such a state of disarray (with new, moved, and removed
 1214 files, and other bits and pieces strewn around) that you don&#8217;t want to risk
 1215 disturbing any of it. Instead, you create a temporary linked working tree to
 1216 make the emergency fix, remove it when done, and then resume your earlier
 1217 refactoring session.</p></div>
 1218 <div class="listingblock">
 1219 <div class="content">
 1220 <pre><code>$ git worktree add -b emergency-fix ../temp master
 1221 $ pushd ../temp
 1222 # ... hack hack hack ...
 1223 $ git commit -a -m 'emergency fix for boss'
 1224 $ popd
 1225 $ git worktree remove ../temp</code></pre>
 1226 </div></div>
 1227 </div>
 1228 </div>
 1229 <div class="sect1">
 1230 <h2 id="_bugs">BUGS</h2>
 1231 <div class="sectionbody">
 1232 <div class="paragraph"><p>Multiple checkout in general is still experimental, and the support
 1233 for submodules is incomplete. It is NOT recommended to make multiple
 1234 checkouts of a superproject.</p></div>
 1235 </div>
 1236 </div>
 1237 <div class="sect1">
 1238 <h2 id="_git">GIT</h2>
 1239 <div class="sectionbody">
 1240 <div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
 1241 </div>
 1242 </div>
 1243 </div>
 1244 <div id="footnotes"><hr /></div>
 1245 <div id="footer">
 1246 <div id="footer-text">
 1247 Last updated
 1248  2018-12-15 13:23:56 JST
 1249 </div>
 1250 </div>
 1251 </body>
 1252 </html>