Merge branch 'master' of /usr/local/google/home/jch/w/git-htmldocs
[git-htmldocs.git] / git-clone.html
blob8f6f3210e046dfcfe102a1ad304d4f725eaa89d7
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 10.2.0" />
8 <title>git-clone(1)</title>
9 <style type="text/css">
10 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
12 /* Default font. */
13 body {
14 font-family: Georgia,serif;
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;
27 body {
28 margin: 1em 5% 1em 5%;
31 a {
32 color: blue;
33 text-decoration: underline;
35 a:visited {
36 color: fuchsia;
39 em {
40 font-style: italic;
41 color: navy;
44 strong {
45 font-weight: bold;
46 color: #083194;
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;
56 h1, h2, h3 {
57 border-bottom: 2px solid silver;
59 h2 {
60 padding-top: 0.5em;
62 h3 {
63 float: left;
65 h3 + * {
66 clear: left;
68 h5 {
69 font-size: 1.0em;
72 div.sectionbody {
73 margin-left: 0;
76 hr {
77 border: 1px solid silver;
80 p {
81 margin-top: 0.5em;
82 margin-bottom: 0.5em;
85 ul, ol, li > p {
86 margin-top: 0;
88 ul > li { color: #aaa; }
89 ul > li > * { color: black; }
91 .monospaced, code, pre {
92 font-family: "Courier New", Courier, monospace;
93 font-size: inherit;
94 color: navy;
95 padding: 0;
96 margin: 0;
98 pre {
99 white-space: pre-wrap;
102 #author {
103 color: #527bbd;
104 font-weight: bold;
105 font-size: 1.1em;
107 #email {
109 #revnumber, #revdate, #revremark {
112 #footer {
113 font-size: small;
114 border-top: 2px solid silver;
115 padding-top: 0.5em;
116 margin-top: 4.0em;
118 #footer-text {
119 float: left;
120 padding-bottom: 0.5em;
122 #footer-badges {
123 float: right;
124 padding-bottom: 0.5em;
127 #preamble {
128 margin-top: 1.5em;
129 margin-bottom: 1.5em;
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;
137 div.admonitionblock {
138 margin-top: 2.0em;
139 margin-bottom: 2.0em;
140 margin-right: 10%;
141 color: #606060;
144 div.content { /* Block element content. */
145 padding: 0;
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;
156 div.title + * {
157 margin-top: 0;
160 td div.title:first-child {
161 margin-top: 0.0em;
163 div.content div.title:first-child {
164 margin-top: 0.0em;
166 div.content + div.title {
167 margin-top: 0.0em;
170 div.sidebarblock > div.content {
171 background: #ffffee;
172 border: 1px solid #dddddd;
173 border-left: 4px solid #f0f0f0;
174 padding: 0.5em;
177 div.listingblock > div.content {
178 border: 1px solid #dddddd;
179 border-left: 5px solid #f0f0f0;
180 background: #f8f8f8;
181 padding: 0.5em;
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;
192 div.quoteblock > div.attribution {
193 padding-top: 0.5em;
194 text-align: right;
197 div.verseblock > pre.content {
198 font-family: inherit;
199 font-size: inherit;
201 div.verseblock > div.attribution {
202 padding-top: 0.75em;
203 text-align: left;
205 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
206 div.verseblock + div.attribution {
207 text-align: left;
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;
218 div.admonitionblock td.content {
219 padding-left: 0.5em;
220 border-left: 3px solid #dddddd;
223 div.exampleblock > div.content {
224 border-left: 3px solid #dddddd;
225 padding-left: 0.5em;
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; }
232 dl {
233 margin-top: 0.8em;
234 margin-bottom: 0.8em;
236 dt {
237 margin-top: 0.5em;
238 margin-bottom: 0;
239 font-style: normal;
240 color: navy;
242 dd > *:first-child {
243 margin-top: 0.1em;
246 ul, ol {
247 list-style-position: outside;
249 ol.arabic {
250 list-style-type: decimal;
252 ol.loweralpha {
253 list-style-type: lower-alpha;
255 ol.upperalpha {
256 list-style-type: upper-alpha;
258 ol.lowerroman {
259 list-style-type: lower-roman;
261 ol.upperroman {
262 list-style-type: upper-roman;
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;
272 tfoot {
273 font-weight: bold;
275 td > div.verse {
276 white-space: pre;
279 div.hdlist {
280 margin-top: 0.8em;
281 margin-bottom: 0.8em;
283 div.hdlist tr {
284 padding-bottom: 15px;
286 dt.hdlist1.strong, td.hdlist1.strong {
287 font-weight: bold;
289 td.hdlist1 {
290 vertical-align: top;
291 font-style: normal;
292 padding-right: 0.8em;
293 color: navy;
295 td.hdlist2 {
296 vertical-align: top;
298 div.hdlist.compact tr {
299 margin: 0;
300 padding-bottom: 0;
303 .comment {
304 background: yellow;
307 .footnote, .footnoteref {
308 font-size: 0.8em;
311 span.footnote, span.footnoteref {
312 vertical-align: super;
315 #footnotes {
316 margin: 20px 0 20px 0;
317 padding: 7px 0 0 0;
320 #footnotes div.footnote {
321 margin: 0 0 5px 0;
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;
334 div.colist td {
335 padding-right: 0.5em;
336 padding-bottom: 0.3em;
337 vertical-align: top;
339 div.colist td img {
340 margin-top: 0.3em;
343 @media print {
344 #footer-badges { display: none; }
347 #toc {
348 margin-bottom: 2.5em;
351 #toctitle {
352 color: #527bbd;
353 font-size: 1.1em;
354 font-weight: bold;
355 margin-top: 1.0em;
356 margin-bottom: 0.1em;
359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
360 margin-top: 0;
361 margin-bottom: 0;
363 div.toclevel2 {
364 margin-left: 2em;
365 font-size: 0.9em;
367 div.toclevel3 {
368 margin-left: 4em;
369 font-size: 0.9em;
371 div.toclevel4 {
372 margin-left: 6em;
373 font-size: 0.9em;
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; }
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; }
410 span.big { font-size: 2em; }
411 span.small { font-size: 0.6em; }
413 span.underline { text-decoration: underline; }
414 span.overline { text-decoration: overline; }
415 span.line-through { text-decoration: line-through; }
417 div.unbreakable { page-break-inside: avoid; }
421 * xhtml11 specific
423 * */
425 div.tableblock {
426 margin-top: 1.0em;
427 margin-bottom: 1.5em;
429 div.tableblock > table {
430 border: 3px solid #527bbd;
432 thead, p.table.header {
433 font-weight: bold;
434 color: #527bbd;
436 p.table {
437 margin-top: 0;
439 /* Because the table frame attribute is overridden by CSS in most browsers. */
440 div.tableblock > table[frame="void"] {
441 border-style: none;
443 div.tableblock > table[frame="hsides"] {
444 border-left-style: none;
445 border-right-style: none;
447 div.tableblock > table[frame="vsides"] {
448 border-top-style: none;
449 border-bottom-style: none;
454 * html5 specific
456 * */
458 table.tableblock {
459 margin-top: 1.0em;
460 margin-bottom: 1.5em;
462 thead, p.tableblock.header {
463 font-weight: bold;
464 color: #527bbd;
466 p.tableblock {
467 margin-top: 0;
469 table.tableblock {
470 border-width: 3px;
471 border-spacing: 0px;
472 border-style: solid;
473 border-color: #527bbd;
474 border-collapse: collapse;
476 th.tableblock, td.tableblock {
477 border-width: 1px;
478 padding: 4px;
479 border-style: solid;
480 border-color: #527bbd;
483 table.tableblock.frame-topbot {
484 border-left-style: hidden;
485 border-right-style: hidden;
487 table.tableblock.frame-sides {
488 border-top-style: hidden;
489 border-bottom-style: hidden;
491 table.tableblock.frame-none {
492 border-style: hidden;
495 th.tableblock.halign-left, td.tableblock.halign-left {
496 text-align: left;
498 th.tableblock.halign-center, td.tableblock.halign-center {
499 text-align: center;
501 th.tableblock.halign-right, td.tableblock.halign-right {
502 text-align: right;
505 th.tableblock.valign-top, td.tableblock.valign-top {
506 vertical-align: top;
508 th.tableblock.valign-middle, td.tableblock.valign-middle {
509 vertical-align: middle;
511 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
512 vertical-align: bottom;
517 * manpage specific
519 * */
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;
527 body.manpage h2 {
528 border-style: none;
530 body.manpage div.sectionbody {
531 margin-left: 3em;
534 @media print {
535 body.manpage div#toc { display: none; }
539 </style>
540 <script type="text/javascript">
541 /*<![CDATA[*/
542 var asciidoc = { // Namespace.
544 /////////////////////////////////////////////////////////////////////
545 // Table Of Contents generator
546 /////////////////////////////////////////////////////////////////////
548 /* Author: Mihai Bazon, September 2002
549 * http://students.infoiasi.ro/~mishoo
551 * Table Of Content generator
552 * Version: 0.4
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.
558 /* modified by Troy D. Hanson, September 2006. License: GPL */
559 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
561 // toclevels = 1..4.
562 toc: function (toclevels) {
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);
572 return text;
575 function TocEntry(el, text, toclevel) {
576 this.element = el;
577 this.text = text;
578 this.toclevel = toclevel;
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);
594 iterate(i);
598 iterate(el);
599 return result;
602 var toc = document.getElementById("toc");
603 if (!toc) {
604 return;
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);
617 for (i = 0; i < tocEntriesToRemove.length; i++) {
618 toc.removeChild(tocEntriesToRemove[i]);
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);
635 if (entries.length == 0)
636 toc.parentNode.removeChild(toc);
640 /////////////////////////////////////////////////////////////////////
641 // Footnotes generator
642 /////////////////////////////////////////////////////////////////////
644 /* Based on footnote generation code from:
645 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
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;
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);
661 for (i = 0; i < entriesToRemove.length; i++) {
662 noteholder.removeChild(entriesToRemove[i]);
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);
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;
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>]";
708 install: function(toclevels) {
709 var timerId;
711 function reinstall() {
712 asciidoc.footnotes();
713 if (toclevels) {
714 asciidoc.toc(toclevels);
718 function reinstallAndRemoveTimer() {
719 clearInterval(timerId);
720 reinstall();
723 timerId = setInterval(reinstall, 500);
724 if (document.addEventListener)
725 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
726 else
727 window.onload = reinstallAndRemoveTimer;
731 asciidoc.install();
732 /*]]>*/
733 </script>
734 </head>
735 <body class="manpage">
736 <div id="header">
737 <h1>
738 git-clone(1) Manual Page
739 </h1>
740 <h2>NAME</h2>
741 <div class="sectionbody">
742 <p>git-clone -
743 Clone a repository into a new directory
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 clone</em> [--template=&lt;template-directory&gt;]
753 [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
754 [-o &lt;name&gt;] [-b &lt;name&gt;] [-u &lt;upload-pack&gt;] [--reference &lt;repository&gt;]
755 [--dissociate] [--separate-git-dir &lt;git-dir&gt;]
756 [--depth &lt;depth&gt;] [--[no-]single-branch] [--no-tags]
757 [--recurse-submodules[=&lt;pathspec&gt;]] [--[no-]shallow-submodules]
758 [--[no-]remote-submodules] [--jobs &lt;n&gt;] [--sparse] [--[no-]reject-shallow]
759 [--filter=&lt;filter&gt; [--also-filter-submodules]] [--] &lt;repository&gt;
760 [&lt;directory&gt;]</pre>
761 <div class="attribution">
762 </div></div>
763 </div>
764 </div>
765 <div class="sect1">
766 <h2 id="_description">DESCRIPTION</h2>
767 <div class="sectionbody">
768 <div class="paragraph"><p>Clones a repository into a newly created directory, creates
769 remote-tracking branches for each branch in the cloned repository
770 (visible using <code>git branch --remotes</code>), and creates and checks out an
771 initial branch that is forked from the cloned repository&#8217;s
772 currently active branch.</p></div>
773 <div class="paragraph"><p>After the clone, a plain <code>git fetch</code> without arguments will update
774 all the remote-tracking branches, and a <code>git pull</code> without
775 arguments will in addition merge the remote master branch into the
776 current master branch, if any (this is untrue when "--single-branch"
777 is given; see below).</p></div>
778 <div class="paragraph"><p>This default configuration is achieved by creating references to
779 the remote branch heads under <code>refs/remotes/origin</code> and
780 by initializing <code>remote.origin.url</code> and <code>remote.origin.fetch</code>
781 configuration variables.</p></div>
782 </div>
783 </div>
784 <div class="sect1">
785 <h2 id="_options">OPTIONS</h2>
786 <div class="sectionbody">
787 <div class="dlist"><dl>
788 <dt class="hdlist1">
790 </dt>
791 <dt class="hdlist1">
792 --local
793 </dt>
794 <dd>
796 When the repository to clone from is on a local machine,
797 this flag bypasses the normal "Git aware" transport
798 mechanism and clones the repository by making a copy of
799 HEAD and everything under objects and refs directories.
800 The files under <code>.git/objects/</code> directory are hardlinked
801 to save space when possible.
802 </p>
803 <div class="paragraph"><p>If the repository is specified as a local path (e.g., <code>/path/to/repo</code>),
804 this is the default, and --local is essentially a no-op. If the
805 repository is specified as a URL, then this flag is ignored (and we
806 never use the local optimizations). Specifying <code>--no-local</code> will
807 override the default when <code>/path/to/repo</code> is given, using the regular
808 Git transport instead.</p></div>
809 <div class="paragraph"><p><strong>NOTE</strong>: this operation can race with concurrent modification to the
810 source repository, similar to running <code>cp -r src dst</code> while modifying
811 <code>src</code>.</p></div>
812 </dd>
813 <dt class="hdlist1">
814 --no-hardlinks
815 </dt>
816 <dd>
818 Force the cloning process from a repository on a local
819 filesystem to copy the files under the <code>.git/objects</code>
820 directory instead of using hardlinks. This may be desirable
821 if you are trying to make a back-up of your repository.
822 </p>
823 </dd>
824 <dt class="hdlist1">
826 </dt>
827 <dt class="hdlist1">
828 --shared
829 </dt>
830 <dd>
832 When the repository to clone is on the local machine,
833 instead of using hard links, automatically setup
834 <code>.git/objects/info/alternates</code> to share the objects
835 with the source repository. The resulting repository
836 starts out without any object of its own.
837 </p>
838 <div class="paragraph"><p><strong>NOTE</strong>: this is a possibly dangerous operation; do <strong>not</strong> use
839 it unless you understand what it does. If you clone your
840 repository using this option and then delete branches (or use any
841 other Git command that makes any existing commit unreferenced) in the
842 source repository, some objects may become unreferenced (or dangling).
843 These objects may be removed by normal Git operations (such as <code>git commit</code>)
844 which automatically call <code>git maintenance run --auto</code>. (See
845 <a href="git-maintenance.html">git-maintenance(1)</a>.) If these objects are removed and were referenced
846 by the cloned repository, then the cloned repository will become corrupt.</p></div>
847 <div class="paragraph"><p>Note that running <code>git repack</code> without the <code>--local</code> option in a repository
848 cloned with <code>--shared</code> will copy objects from the source repository into a pack
849 in the cloned repository, removing the disk space savings of <code>clone --shared</code>.
850 It is safe, however, to run <code>git gc</code>, which uses the <code>--local</code> option by
851 default.</p></div>
852 <div class="paragraph"><p>If you want to break the dependency of a repository cloned with <code>--shared</code> on
853 its source repository, you can simply run <code>git repack -a</code> to copy all
854 objects from the source repository into a pack in the cloned repository.</p></div>
855 </dd>
856 <dt class="hdlist1">
857 --reference[-if-able] &lt;repository&gt;
858 </dt>
859 <dd>
861 If the reference repository is on the local machine,
862 automatically setup <code>.git/objects/info/alternates</code> to
863 obtain objects from the reference repository. Using
864 an already existing repository as an alternate will
865 require fewer objects to be copied from the repository
866 being cloned, reducing network and local storage costs.
867 When using the <code>--reference-if-able</code>, a non existing
868 directory is skipped with a warning instead of aborting
869 the clone.
870 </p>
871 <div class="paragraph"><p><strong>NOTE</strong>: see the NOTE for the <code>--shared</code> option, and also the
872 <code>--dissociate</code> option.</p></div>
873 </dd>
874 <dt class="hdlist1">
875 --dissociate
876 </dt>
877 <dd>
879 Borrow the objects from reference repositories specified
880 with the <code>--reference</code> options only to reduce network
881 transfer, and stop borrowing from them after a clone is made
882 by making necessary local copies of borrowed objects. This
883 option can also be used when cloning locally from a
884 repository that already borrows objects from another
885 repository&#8212;the new repository will borrow objects from the
886 same repository, and this option can be used to stop the
887 borrowing.
888 </p>
889 </dd>
890 <dt class="hdlist1">
892 </dt>
893 <dt class="hdlist1">
894 --quiet
895 </dt>
896 <dd>
898 Operate quietly. Progress is not reported to the standard
899 error stream.
900 </p>
901 </dd>
902 <dt class="hdlist1">
904 </dt>
905 <dt class="hdlist1">
906 --verbose
907 </dt>
908 <dd>
910 Run verbosely. Does not affect the reporting of progress status
911 to the standard error stream.
912 </p>
913 </dd>
914 <dt class="hdlist1">
915 --progress
916 </dt>
917 <dd>
919 Progress status is reported on the standard error stream
920 by default when it is attached to a terminal, unless <code>--quiet</code>
921 is specified. This flag forces progress status even if the
922 standard error stream is not directed to a terminal.
923 </p>
924 </dd>
925 <dt class="hdlist1">
926 --server-option=&lt;option&gt;
927 </dt>
928 <dd>
930 Transmit the given string to the server when communicating using
931 protocol version 2. The given string must not contain a NUL or LF
932 character. The server&#8217;s handling of server options, including
933 unknown ones, is server-specific.
934 When multiple <code>--server-option=&lt;option&gt;</code> are given, they are all
935 sent to the other side in the order listed on the command line.
936 </p>
937 </dd>
938 <dt class="hdlist1">
940 </dt>
941 <dt class="hdlist1">
942 --no-checkout
943 </dt>
944 <dd>
946 No checkout of HEAD is performed after the clone is complete.
947 </p>
948 </dd>
949 <dt class="hdlist1">
950 --[no-]reject-shallow
951 </dt>
952 <dd>
954 Fail if the source repository is a shallow repository.
955 The <em>clone.rejectShallow</em> configuration variable can be used to
956 specify the default.
957 </p>
958 </dd>
959 <dt class="hdlist1">
960 --bare
961 </dt>
962 <dd>
964 Make a <em>bare</em> Git repository. That is, instead of
965 creating <code>&lt;directory&gt;</code> and placing the administrative
966 files in <code>&lt;directory&gt;/.git</code>, make the <code>&lt;directory&gt;</code>
967 itself the <code>$GIT_DIR</code>. This obviously implies the <code>--no-checkout</code>
968 because there is nowhere to check out the working tree.
969 Also the branch heads at the remote are copied directly
970 to corresponding local branch heads, without mapping
971 them to <code>refs/remotes/origin/</code>. When this option is
972 used, neither remote-tracking branches nor the related
973 configuration variables are created.
974 </p>
975 </dd>
976 <dt class="hdlist1">
977 --sparse
978 </dt>
979 <dd>
981 Employ a sparse-checkout, with only files in the toplevel
982 directory initially being present. The
983 <a href="git-sparse-checkout.html">git-sparse-checkout(1)</a> command can be used to grow the
984 working directory as needed.
985 </p>
986 </dd>
987 <dt class="hdlist1">
988 --filter=&lt;filter-spec&gt;
989 </dt>
990 <dd>
992 Use the partial clone feature and request that the server sends
993 a subset of reachable objects according to a given object filter.
994 When using <code>--filter</code>, the supplied <code>&lt;filter-spec&gt;</code> is used for
995 the partial clone filter. For example, <code>--filter=blob:none</code> will
996 filter out all blobs (file contents) until needed by Git. Also,
997 <code>--filter=blob:limit=&lt;size&gt;</code> will filter out all blobs of size
998 at least <code>&lt;size&gt;</code>. For more details on filter specifications, see
999 the <code>--filter</code> option in <a href="git-rev-list.html">git-rev-list(1)</a>.
1000 </p>
1001 </dd>
1002 <dt class="hdlist1">
1003 --also-filter-submodules
1004 </dt>
1005 <dd>
1007 Also apply the partial clone filter to any submodules in the repository.
1008 Requires <code>--filter</code> and <code>--recurse-submodules</code>. This can be turned on by
1009 default by setting the <code>clone.filterSubmodules</code> config option.
1010 </p>
1011 </dd>
1012 <dt class="hdlist1">
1013 --mirror
1014 </dt>
1015 <dd>
1017 Set up a mirror of the source repository. This implies <code>--bare</code>.
1018 Compared to <code>--bare</code>, <code>--mirror</code> not only maps local branches of the
1019 source to local branches of the target, it maps all refs (including
1020 remote-tracking branches, notes etc.) and sets up a refspec configuration such
1021 that all these refs are overwritten by a <code>git remote update</code> in the
1022 target repository.
1023 </p>
1024 </dd>
1025 <dt class="hdlist1">
1026 -o &lt;name&gt;
1027 </dt>
1028 <dt class="hdlist1">
1029 --origin &lt;name&gt;
1030 </dt>
1031 <dd>
1033 Instead of using the remote name <code>origin</code> to keep track of the upstream
1034 repository, use <code>&lt;name&gt;</code>. Overrides <code>clone.defaultRemoteName</code> from the
1035 config.
1036 </p>
1037 </dd>
1038 <dt class="hdlist1">
1039 -b &lt;name&gt;
1040 </dt>
1041 <dt class="hdlist1">
1042 --branch &lt;name&gt;
1043 </dt>
1044 <dd>
1046 Instead of pointing the newly created HEAD to the branch pointed
1047 to by the cloned repository&#8217;s HEAD, point to <code>&lt;name&gt;</code> branch
1048 instead. In a non-bare repository, this is the branch that will
1049 be checked out.
1050 <code>--branch</code> can also take tags and detaches the HEAD at that commit
1051 in the resulting repository.
1052 </p>
1053 </dd>
1054 <dt class="hdlist1">
1055 -u &lt;upload-pack&gt;
1056 </dt>
1057 <dt class="hdlist1">
1058 --upload-pack &lt;upload-pack&gt;
1059 </dt>
1060 <dd>
1062 When given, and the repository to clone from is accessed
1063 via ssh, this specifies a non-default path for the command
1064 run on the other end.
1065 </p>
1066 </dd>
1067 <dt class="hdlist1">
1068 --template=&lt;template-directory&gt;
1069 </dt>
1070 <dd>
1072 Specify the directory from which templates will be used;
1073 (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
1074 </p>
1075 </dd>
1076 <dt class="hdlist1">
1077 -c &lt;key&gt;=&lt;value&gt;
1078 </dt>
1079 <dt class="hdlist1">
1080 --config &lt;key&gt;=&lt;value&gt;
1081 </dt>
1082 <dd>
1084 Set a configuration variable in the newly-created repository;
1085 this takes effect immediately after the repository is
1086 initialized, but before the remote history is fetched or any
1087 files checked out. The key is in the same format as expected by
1088 <a href="git-config.html">git-config(1)</a> (e.g., <code>core.eol=true</code>). If multiple
1089 values are given for the same key, each value will be written to
1090 the config file. This makes it safe, for example, to add
1091 additional fetch refspecs to the origin remote.
1092 </p>
1093 <div class="paragraph"><p>Due to limitations of the current implementation, some configuration
1094 variables do not take effect until after the initial fetch and checkout.
1095 Configuration variables known to not take effect are:
1096 <code>remote.&lt;name&gt;.mirror</code> and <code>remote.&lt;name&gt;.tagOpt</code>. Use the
1097 corresponding <code>--mirror</code> and <code>--no-tags</code> options instead.</p></div>
1098 </dd>
1099 <dt class="hdlist1">
1100 --depth &lt;depth&gt;
1101 </dt>
1102 <dd>
1104 Create a <em>shallow</em> clone with a history truncated to the
1105 specified number of commits. Implies <code>--single-branch</code> unless
1106 <code>--no-single-branch</code> is given to fetch the histories near the
1107 tips of all branches. If you want to clone submodules shallowly,
1108 also pass <code>--shallow-submodules</code>.
1109 </p>
1110 </dd>
1111 <dt class="hdlist1">
1112 --shallow-since=&lt;date&gt;
1113 </dt>
1114 <dd>
1116 Create a shallow clone with a history after the specified time.
1117 </p>
1118 </dd>
1119 <dt class="hdlist1">
1120 --shallow-exclude=&lt;revision&gt;
1121 </dt>
1122 <dd>
1124 Create a shallow clone with a history, excluding commits
1125 reachable from a specified remote branch or tag. This option
1126 can be specified multiple times.
1127 </p>
1128 </dd>
1129 <dt class="hdlist1">
1130 --[no-]single-branch
1131 </dt>
1132 <dd>
1134 Clone only the history leading to the tip of a single branch,
1135 either specified by the <code>--branch</code> option or the primary
1136 branch remote&#8217;s <code>HEAD</code> points at.
1137 Further fetches into the resulting repository will only update the
1138 remote-tracking branch for the branch this option was used for the
1139 initial cloning. If the HEAD at the remote did not point at any
1140 branch when <code>--single-branch</code> clone was made, no remote-tracking
1141 branch is created.
1142 </p>
1143 </dd>
1144 <dt class="hdlist1">
1145 --no-tags
1146 </dt>
1147 <dd>
1149 Don&#8217;t clone any tags, and set
1150 <code>remote.&lt;remote&gt;.tagOpt=--no-tags</code> in the config, ensuring
1151 that future <code>git pull</code> and <code>git fetch</code> operations won&#8217;t follow
1152 any tags. Subsequent explicit tag fetches will still work,
1153 (see <a href="git-fetch.html">git-fetch(1)</a>).
1154 </p>
1155 <div class="paragraph"><p>Can be used in conjunction with <code>--single-branch</code> to clone and
1156 maintain a branch with no references other than a single cloned
1157 branch. This is useful e.g. to maintain minimal clones of the default
1158 branch of some repository for search indexing.</p></div>
1159 </dd>
1160 <dt class="hdlist1">
1161 --recurse-submodules[=&lt;pathspec&gt;]
1162 </dt>
1163 <dd>
1165 After the clone is created, initialize and clone submodules
1166 within based on the provided pathspec. If no pathspec is
1167 provided, all submodules are initialized and cloned.
1168 This option can be given multiple times for pathspecs consisting
1169 of multiple entries. The resulting clone has <code>submodule.active</code> set to
1170 the provided pathspec, or "." (meaning all submodules) if no
1171 pathspec is provided.
1172 </p>
1173 <div class="paragraph"><p>Submodules are initialized and cloned using their default settings. This is
1174 equivalent to running
1175 <code>git submodule update --init --recursive &lt;pathspec&gt;</code> immediately after
1176 the clone is finished. This option is ignored if the cloned repository does
1177 not have a worktree/checkout (i.e. if any of <code>--no-checkout</code>/<code>-n</code>, <code>--bare</code>,
1178 or <code>--mirror</code> is given)</p></div>
1179 </dd>
1180 <dt class="hdlist1">
1181 --[no-]shallow-submodules
1182 </dt>
1183 <dd>
1185 All submodules which are cloned will be shallow with a depth of 1.
1186 </p>
1187 </dd>
1188 <dt class="hdlist1">
1189 --[no-]remote-submodules
1190 </dt>
1191 <dd>
1193 All submodules which are cloned will use the status of the submodule&#8217;s
1194 remote-tracking branch to update the submodule, rather than the
1195 superproject&#8217;s recorded SHA-1. Equivalent to passing <code>--remote</code> to
1196 <code>git submodule update</code>.
1197 </p>
1198 </dd>
1199 <dt class="hdlist1">
1200 --separate-git-dir=&lt;git-dir&gt;
1201 </dt>
1202 <dd>
1204 Instead of placing the cloned repository where it is supposed
1205 to be, place the cloned repository at the specified directory,
1206 then make a filesystem-agnostic Git symbolic link to there.
1207 The result is Git repository can be separated from working
1208 tree.
1209 </p>
1210 </dd>
1211 <dt class="hdlist1">
1212 -j &lt;n&gt;
1213 </dt>
1214 <dt class="hdlist1">
1215 --jobs &lt;n&gt;
1216 </dt>
1217 <dd>
1219 The number of submodules fetched at the same time.
1220 Defaults to the <code>submodule.fetchJobs</code> option.
1221 </p>
1222 </dd>
1223 <dt class="hdlist1">
1224 &lt;repository&gt;
1225 </dt>
1226 <dd>
1228 The (possibly remote) repository to clone from. See the
1229 <a href="#URLS">GIT URLS</a> section below for more information on specifying
1230 repositories.
1231 </p>
1232 </dd>
1233 <dt class="hdlist1">
1234 &lt;directory&gt;
1235 </dt>
1236 <dd>
1238 The name of a new directory to clone into. The "humanish"
1239 part of the source repository is used if no directory is
1240 explicitly given (<code>repo</code> for <code>/path/to/repo.git</code> and <code>foo</code>
1241 for <code>host.xz:foo/.git</code>). Cloning into an existing directory
1242 is only allowed if the directory is empty.
1243 </p>
1244 </dd>
1245 <dt class="hdlist1">
1246 --bundle-uri=&lt;uri&gt;
1247 </dt>
1248 <dd>
1250 Before fetching from the remote, fetch a bundle from the given
1251 <code>&lt;uri&gt;</code> and unbundle the data into the local repository. The refs
1252 in the bundle will be stored under the hidden <code>refs/bundle/*</code>
1253 namespace. This option is incompatible with <code>--depth</code>,
1254 <code>--shallow-since</code>, and <code>--shallow-exclude</code>.
1255 </p>
1256 </dd>
1257 </dl></div>
1258 </div>
1259 </div>
1260 <div class="sect1">
1261 <h2 id="_git_urls_a_id_urls_a">GIT URLS<a id="URLS"></a></h2>
1262 <div class="sectionbody">
1263 <div class="paragraph"><p>In general, URLs contain information about the transport protocol, the
1264 address of the remote server, and the path to the repository.
1265 Depending on the transport protocol, some of this information may be
1266 absent.</p></div>
1267 <div class="paragraph"><p>Git supports ssh, git, http, and https protocols (in addition, ftp,
1268 and ftps can be used for fetching, but this is inefficient and
1269 deprecated; do not use it).</p></div>
1270 <div class="paragraph"><p>The native transport (i.e. git:// URL) does no authentication and
1271 should be used with caution on unsecured networks.</p></div>
1272 <div class="paragraph"><p>The following syntaxes may be used with them:</p></div>
1273 <div class="ulist"><ul>
1274 <li>
1276 ssh://&#91;user@&#93;host.xz&#91;:port&#93;/path/to/repo.git/
1277 </p>
1278 </li>
1279 <li>
1281 git://host.xz&#91;:port&#93;/path/to/repo.git/
1282 </p>
1283 </li>
1284 <li>
1286 http&#91;s&#93;://host.xz&#91;:port&#93;/path/to/repo.git/
1287 </p>
1288 </li>
1289 <li>
1291 ftp&#91;s&#93;://host.xz&#91;:port&#93;/path/to/repo.git/
1292 </p>
1293 </li>
1294 </ul></div>
1295 <div class="paragraph"><p>An alternative scp-like syntax may also be used with the ssh protocol:</p></div>
1296 <div class="ulist"><ul>
1297 <li>
1299 &#91;user@&#93;host.xz:path/to/repo.git/
1300 </p>
1301 </li>
1302 </ul></div>
1303 <div class="paragraph"><p>This syntax is only recognized if there are no slashes before the
1304 first colon. This helps differentiate a local path that contains a
1305 colon. For example the local path <code>foo:bar</code> could be specified as an
1306 absolute path or <code>./foo:bar</code> to avoid being misinterpreted as an ssh
1307 url.</p></div>
1308 <div class="paragraph"><p>The ssh and git protocols additionally support ~username expansion:</p></div>
1309 <div class="ulist"><ul>
1310 <li>
1312 ssh://&#91;user@&#93;host.xz&#91;:port&#93;/~&#91;user&#93;/path/to/repo.git/
1313 </p>
1314 </li>
1315 <li>
1317 git://host.xz&#91;:port&#93;/~&#91;user&#93;/path/to/repo.git/
1318 </p>
1319 </li>
1320 <li>
1322 &#91;user@&#93;host.xz:/~&#91;user&#93;/path/to/repo.git/
1323 </p>
1324 </li>
1325 </ul></div>
1326 <div class="paragraph"><p>For local repositories, also supported by Git natively, the following
1327 syntaxes may be used:</p></div>
1328 <div class="ulist"><ul>
1329 <li>
1331 /path/to/repo.git/
1332 </p>
1333 </li>
1334 <li>
1336 file:///path/to/repo.git/
1337 </p>
1338 </li>
1339 </ul></div>
1340 <div class="paragraph"><p>These two syntaxes are mostly equivalent, except the former implies
1341 --local option.</p></div>
1342 <div class="paragraph"><p><em>git clone</em>, <em>git fetch</em> and <em>git pull</em>, but not <em>git push</em>, will also
1343 accept a suitable bundle file. See <a href="git-bundle.html">git-bundle(1)</a>.</p></div>
1344 <div class="paragraph"><p>When Git doesn&#8217;t know how to handle a certain transport protocol, it
1345 attempts to use the <em>remote-&lt;transport&gt;</em> remote helper, if one
1346 exists. To explicitly request a remote helper, the following syntax
1347 may be used:</p></div>
1348 <div class="ulist"><ul>
1349 <li>
1351 &lt;transport&gt;::&lt;address&gt;
1352 </p>
1353 </li>
1354 </ul></div>
1355 <div class="paragraph"><p>where &lt;address&gt; may be a path, a server and path, or an arbitrary
1356 URL-like string recognized by the specific remote helper being
1357 invoked. See <a href="gitremote-helpers.html">gitremote-helpers(7)</a> for details.</p></div>
1358 <div class="paragraph"><p>If there are a large number of similarly-named remote repositories and
1359 you want to use a different format for them (such that the URLs you
1360 use will be rewritten into URLs that work), you can create a
1361 configuration section of the form:</p></div>
1362 <div class="listingblock">
1363 <div class="content">
1364 <pre><code> [url "&lt;actual url base&gt;"]
1365 insteadOf = &lt;other url base&gt;</code></pre>
1366 </div></div>
1367 <div class="paragraph"><p>For example, with this:</p></div>
1368 <div class="listingblock">
1369 <div class="content">
1370 <pre><code> [url "git://git.host.xz/"]
1371 insteadOf = host.xz:/path/to/
1372 insteadOf = work:</code></pre>
1373 </div></div>
1374 <div class="paragraph"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be
1375 rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div>
1376 <div class="paragraph"><p>If you want to rewrite URLs for push only, you can create a
1377 configuration section of the form:</p></div>
1378 <div class="listingblock">
1379 <div class="content">
1380 <pre><code> [url "&lt;actual url base&gt;"]
1381 pushInsteadOf = &lt;other url base&gt;</code></pre>
1382 </div></div>
1383 <div class="paragraph"><p>For example, with this:</p></div>
1384 <div class="listingblock">
1385 <div class="content">
1386 <pre><code> [url "ssh://example.org/"]
1387 pushInsteadOf = git://example.org/</code></pre>
1388 </div></div>
1389 <div class="paragraph"><p>a URL like "git://example.org/path/to/repo.git" will be rewritten to
1390 "ssh://example.org/path/to/repo.git" for pushes, but pulls will still
1391 use the original URL.</p></div>
1392 </div>
1393 </div>
1394 <div class="sect1">
1395 <h2 id="_examples">EXAMPLES</h2>
1396 <div class="sectionbody">
1397 <div class="ulist"><ul>
1398 <li>
1400 Clone from upstream:
1401 </p>
1402 <div class="listingblock">
1403 <div class="content">
1404 <pre><code>$ git clone git://git.kernel.org/pub/scm/.../linux.git my-linux
1405 $ cd my-linux
1406 $ make</code></pre>
1407 </div></div>
1408 </li>
1409 <li>
1411 Make a local clone that borrows from the current directory, without checking things out:
1412 </p>
1413 <div class="listingblock">
1414 <div class="content">
1415 <pre><code>$ git clone -l -s -n . ../copy
1416 $ cd ../copy
1417 $ git show-branch</code></pre>
1418 </div></div>
1419 </li>
1420 <li>
1422 Clone from upstream while borrowing from an existing local directory:
1423 </p>
1424 <div class="listingblock">
1425 <div class="content">
1426 <pre><code>$ git clone --reference /git/linux.git \
1427 git://git.kernel.org/pub/scm/.../linux.git \
1428 my-linux
1429 $ cd my-linux</code></pre>
1430 </div></div>
1431 </li>
1432 <li>
1434 Create a bare repository to publish your changes to the public:
1435 </p>
1436 <div class="listingblock">
1437 <div class="content">
1438 <pre><code>$ git clone --bare -l /home/proj/.git /pub/scm/proj.git</code></pre>
1439 </div></div>
1440 </li>
1441 </ul></div>
1442 </div>
1443 </div>
1444 <div class="sect1">
1445 <h2 id="_configuration">CONFIGURATION</h2>
1446 <div class="sectionbody">
1447 <div class="paragraph"><p>Everything below this line in this section is selectively included
1448 from the <a href="git-config.html">git-config(1)</a> documentation. The content is the same
1449 as what&#8217;s found there:</p></div>
1450 <div class="dlist"><dl>
1451 <dt class="hdlist1">
1452 init.templateDir
1453 </dt>
1454 <dd>
1456 Specify the directory from which templates will be copied.
1457 (See the "TEMPLATE DIRECTORY" section of <a href="git-init.html">git-init(1)</a>.)
1458 </p>
1459 </dd>
1460 <dt class="hdlist1">
1461 init.defaultBranch
1462 </dt>
1463 <dd>
1465 Allows overriding the default branch name e.g. when initializing
1466 a new repository.
1467 </p>
1468 </dd>
1469 <dt class="hdlist1">
1470 clone.defaultRemoteName
1471 </dt>
1472 <dd>
1474 The name of the remote to create when cloning a repository. Defaults to
1475 <code>origin</code>, and can be overridden by passing the <code>--origin</code> command-line
1476 option to <a href="git-clone.html">git-clone(1)</a>.
1477 </p>
1478 </dd>
1479 <dt class="hdlist1">
1480 clone.rejectShallow
1481 </dt>
1482 <dd>
1484 Reject to clone a repository if it is a shallow one, can be overridden by
1485 passing option <code>--reject-shallow</code> in command line. See <a href="git-clone.html">git-clone(1)</a>
1486 </p>
1487 </dd>
1488 <dt class="hdlist1">
1489 clone.filterSubmodules
1490 </dt>
1491 <dd>
1493 If a partial clone filter is provided (see <code>--filter</code> in
1494 <a href="git-rev-list.html">git-rev-list(1)</a>) and <code>--recurse-submodules</code> is used, also apply
1495 the filter to submodules.
1496 </p>
1497 </dd>
1498 </dl></div>
1499 </div>
1500 </div>
1501 <div class="sect1">
1502 <h2 id="_git">GIT</h2>
1503 <div class="sectionbody">
1504 <div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
1505 </div>
1506 </div>
1507 </div>
1508 <div id="footnotes"><hr /></div>
1509 <div id="footer">
1510 <div id="footer-text">
1511 Last updated
1512 2022-09-14 13:23:11 PDT
1513 </div>
1514 </div>
1515 </body>
1516 </html>