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">
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 */
14 font-family: Georgia,serif;
18 h1, h2, h3, h4, h5, h6,
19 div.title, caption.title,
20 thead, p.table.header,
22 #author, #revnumber, #revdate, #revremark,
24 font-family: Arial,Helvetica,sans-serif;
28 margin:
1em
5%
1em
5%;
33 text-decoration: underline;
49 h1, h2, h3, h4, h5, h6 {
57 border-bottom:
2px solid silver;
77 border:
1px solid silver;
88 ul
> li { color: #aaa; }
89 ul
> li
> * { color: black; }
91 .monospaced, code, pre {
92 font-family:
"Courier New", Courier, monospace;
99 white-space: pre-wrap;
109 #revnumber, #revdate, #revremark {
114 border-top:
2px solid silver;
120 padding-bottom:
0.5em;
124 padding-bottom:
0.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 {
135 margin-bottom:
1.5em;
137 div.admonitionblock {
139 margin-bottom:
2.0em;
144 div.content { /* Block element content. */
148 /* Block element titles. */
149 div.title, caption.title {
154 margin-bottom:
0.5em;
160 td div.title:first-child {
163 div.content div.title:first-child {
166 div.content + div.title {
170 div.sidebarblock
> div.content {
172 border:
1px solid #dddddd;
173 border-left:
4px solid #f0f0f0;
177 div.listingblock
> div.content {
178 border:
1px solid #dddddd;
179 border-left:
5px solid #f0f0f0;
184 div.quoteblock, div.verseblock {
188 border-left:
5px solid #f0f0f0;
192 div.quoteblock
> div.attribution {
197 div.verseblock
> pre.content {
198 font-family: inherit;
201 div.verseblock
> div.attribution {
205 /* DEPRECATED: Pre version
8.2.7 verse style literal block. */
206 div.verseblock + div.attribution {
210 div.admonitionblock .icon {
214 text-decoration: underline;
216 padding-right:
0.5em;
218 div.admonitionblock td.content {
220 border-left:
3px solid #dddddd;
223 div.exampleblock
> div.content {
224 border-left:
3px solid #dddddd;
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; }
234 margin-bottom:
0.8em;
247 list-style-position: outside;
250 list-style-type: decimal;
253 list-style-type: lower-alpha;
256 list-style-type: upper-alpha;
259 list-style-type: lower-roman;
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 {
269 margin-bottom:
0.1em;
281 margin-bottom:
0.8em;
284 padding-bottom:
15px;
286 dt.hdlist1.strong, td.hdlist1.strong {
292 padding-right:
0.8em;
298 div.hdlist.compact tr {
307 .footnote, .footnoteref {
311 span.footnote, span.footnoteref {
312 vertical-align: super;
316 margin:
20px
0 20px
0;
320 #footnotes div.footnote {
326 border-top:
1px solid silver;
335 padding-right:
0.5em;
336 padding-bottom:
0.3em;
344 #footer-badges { display: none; }
348 margin-bottom:
2.5em;
356 margin-bottom:
0.1em;
359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
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; }
427 margin-bottom:
1.5em;
429 div.tableblock
> table {
430 border:
3px solid #
527bbd;
432 thead, p.table.header {
439 /* Because the table frame attribute is overridden by CSS in most browsers. */
440 div.tableblock
> table[
frame=
"void"] {
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;
460 margin-bottom:
1.5em;
462 thead, p.tableblock.header {
473 border-color: #
527bbd;
474 border-collapse: collapse;
476 th.tableblock, td.tableblock {
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 {
498 th.tableblock.halign-center, td.tableblock.halign-center {
501 th.tableblock.halign-right, td.tableblock.halign-right {
505 th.tableblock.valign-top, td.tableblock.valign-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;
523 padding-bottom:
0.5em;
524 border-top:
2px solid silver;
525 border-bottom:
2px solid silver;
530 body.manpage div.sectionbody {
535 body.manpage div#toc { display: none; }
540 <script type=
"text/javascript">
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
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 */
562 toc: function (toclevels) {
564 function getText(el) {
566 for (var i = el.firstChild; i != null; i = i.nextSibling) {
567 if (i.nodeType ==
3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
569 else if (i.firstChild != null)
575 function TocEntry(el, text, toclevel) {
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
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);
602 var toc = document.getElementById(
"toc");
607 // Delete existing TOC entries in case we're reloading the TOC.
608 var tocEntriesToRemove = [];
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");
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.
651 var noteholder = document.getElementById(
"footnotes");
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");
670 for (i=
0; i
<spans.length; i++) {
671 if (spans[i].className ==
"footnote") {
673 var note = spans[i].getAttribute(
"data-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];
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;
692 noteholder.parentNode.removeChild(noteholder);
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.
701 "[<a href='#_footnote_" + n +
702 "' title='View footnote' class='footnote'>" + n +
"</a>]";
708 install: function(toclevels) {
711 function reinstall() {
712 asciidoc.footnotes();
714 asciidoc.toc(toclevels);
718 function reinstallAndRemoveTimer() {
719 clearInterval(timerId);
723 timerId = setInterval(reinstall,
500);
724 if (document.addEventListener)
725 document.addEventListener(
"DOMContentLoaded", reinstallAndRemoveTimer, false);
727 window.onload = reinstallAndRemoveTimer;
735 <body class=
"manpage">
738 git-clone(
1) Manual Page
741 <div class=
"sectionbody">
743 Clone a repository into a new directory
749 <h2 id=
"_synopsis">SYNOPSIS
</h2>
750 <div class=
"sectionbody">
751 <div class=
"verseblock">
752 <pre class=
"content"><em>git clone
</em> [--template=
<template-directory
>]
753 [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
754 [-o
<name
>] [-b
<name
>] [-u
<upload-pack
>] [--reference
<repository
>]
755 [--dissociate] [--separate-git-dir
<git-dir
>]
756 [--depth
<depth
>] [--[no-]single-branch] [--no-tags]
757 [--recurse-submodules[=
<pathspec
>]] [--[no-]shallow-submodules]
758 [--[no-]remote-submodules] [--jobs
<n
>] [--sparse] [--[no-]reject-shallow]
759 [--filter=
<filter
> [--also-filter-submodules]] [--]
<repository
>
760 [
<directory
>]
</pre>
761 <div class=
"attribution">
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
’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>
785 <h2 id=
"_options">OPTIONS
</h2>
786 <div class=
"sectionbody">
787 <div class=
"dlist"><dl>
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.
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>If the repository
’s
<code>$GIT_DIR/objects
</code> has symbolic links or is a
810 symbolic link, the clone will fail. This is a security measure to
811 prevent the unintentional copying of files by dereferencing the symbolic
813 <div class=
"paragraph"><p><strong>NOTE
</strong>: this operation can race with concurrent modification to the
814 source repository, similar to running
<code>cp -r src dst
</code> while modifying
815 <code>src
</code>.
</p></div>
822 Force the cloning process from a repository on a local
823 filesystem to copy the files under the
<code>.git/objects
</code>
824 directory instead of using hardlinks. This may be desirable
825 if you are trying to make a back-up of your repository.
836 When the repository to clone is on the local machine,
837 instead of using hard links, automatically setup
838 <code>.git/objects/info/alternates
</code> to share the objects
839 with the source repository. The resulting repository
840 starts out without any object of its own.
842 <div class=
"paragraph"><p><strong>NOTE
</strong>: this is a possibly dangerous operation; do
<strong>not
</strong> use
843 it unless you understand what it does. If you clone your
844 repository using this option and then delete branches (or use any
845 other Git command that makes any existing commit unreferenced) in the
846 source repository, some objects may become unreferenced (or dangling).
847 These objects may be removed by normal Git operations (such as
<code>git commit
</code>)
848 which automatically call
<code>git maintenance run --auto
</code>. (See
849 <a href=
"git-maintenance.html">git-maintenance(
1)
</a>.) If these objects are removed and were referenced
850 by the cloned repository, then the cloned repository will become corrupt.
</p></div>
851 <div class=
"paragraph"><p>Note that running
<code>git repack
</code> without the
<code>--local
</code> option in a repository
852 cloned with
<code>--shared
</code> will copy objects from the source repository into a pack
853 in the cloned repository, removing the disk space savings of
<code>clone --shared
</code>.
854 It is safe, however, to run
<code>git gc
</code>, which uses the
<code>--local
</code> option by
856 <div class=
"paragraph"><p>If you want to break the dependency of a repository cloned with
<code>--shared
</code> on
857 its source repository, you can simply run
<code>git repack -a
</code> to copy all
858 objects from the source repository into a pack in the cloned repository.
</p></div>
861 --reference[-if-able]
<repository
>
865 If the reference repository is on the local machine,
866 automatically setup
<code>.git/objects/info/alternates
</code> to
867 obtain objects from the reference repository. Using
868 an already existing repository as an alternate will
869 require fewer objects to be copied from the repository
870 being cloned, reducing network and local storage costs.
871 When using the
<code>--reference-if-able
</code>, a non existing
872 directory is skipped with a warning instead of aborting
875 <div class=
"paragraph"><p><strong>NOTE
</strong>: see the NOTE for the
<code>--shared
</code> option, and also the
876 <code>--dissociate
</code> option.
</p></div>
883 Borrow the objects from reference repositories specified
884 with the
<code>--reference
</code> options only to reduce network
885 transfer, and stop borrowing from them after a clone is made
886 by making necessary local copies of borrowed objects. This
887 option can also be used when cloning locally from a
888 repository that already borrows objects from another
889 repository
—the new repository will borrow objects from the
890 same repository, and this option can be used to stop the
902 Operate quietly. Progress is not reported to the standard
914 Run verbosely. Does not affect the reporting of progress status
915 to the standard error stream.
923 Progress status is reported on the standard error stream
924 by default when it is attached to a terminal, unless
<code>--quiet
</code>
925 is specified. This flag forces progress status even if the
926 standard error stream is not directed to a terminal.
930 --server-option=
<option
>
934 Transmit the given string to the server when communicating using
935 protocol version
2. The given string must not contain a NUL or LF
936 character. The server
’s handling of server options, including
937 unknown ones, is server-specific.
938 When multiple
<code>--server-option=
<option
></code> are given, they are all
939 sent to the other side in the order listed on the command line.
950 No checkout of HEAD is performed after the clone is complete.
954 --[no-]reject-shallow
958 Fail if the source repository is a shallow repository.
959 The
<em>clone.rejectShallow
</em> configuration variable can be used to
968 Make a
<em>bare
</em> Git repository. That is, instead of
969 creating
<code><directory
></code> and placing the administrative
970 files in
<code><directory
>/.git
</code>, make the
<code><directory
></code>
971 itself the
<code>$GIT_DIR
</code>. This obviously implies the
<code>--no-checkout
</code>
972 because there is nowhere to check out the working tree.
973 Also the branch heads at the remote are copied directly
974 to corresponding local branch heads, without mapping
975 them to
<code>refs/remotes/origin/
</code>. When this option is
976 used, neither remote-tracking branches nor the related
977 configuration variables are created.
985 Employ a sparse-checkout, with only files in the toplevel
986 directory initially being present. The
987 <a href=
"git-sparse-checkout.html">git-sparse-checkout(
1)
</a> command can be used to grow the
988 working directory as needed.
992 --filter=
<filter-spec
>
996 Use the partial clone feature and request that the server sends
997 a subset of reachable objects according to a given object filter.
998 When using
<code>--filter
</code>, the supplied
<code><filter-spec
></code> is used for
999 the partial clone filter. For example,
<code>--filter=blob:none
</code> will
1000 filter out all blobs (file contents) until needed by Git. Also,
1001 <code>--filter=blob:limit=
<size
></code> will filter out all blobs of size
1002 at least
<code><size
></code>. For more details on filter specifications, see
1003 the
<code>--filter
</code> option in
<a href=
"git-rev-list.html">git-rev-list(
1)
</a>.
1006 <dt class=
"hdlist1">
1007 --also-filter-submodules
1011 Also apply the partial clone filter to any submodules in the repository.
1012 Requires
<code>--filter
</code> and
<code>--recurse-submodules
</code>. This can be turned on by
1013 default by setting the
<code>clone.filterSubmodules
</code> config option.
1016 <dt class=
"hdlist1">
1021 Set up a mirror of the source repository. This implies
<code>--bare
</code>.
1022 Compared to
<code>--bare
</code>,
<code>--mirror
</code> not only maps local branches of the
1023 source to local branches of the target, it maps all refs (including
1024 remote-tracking branches, notes etc.) and sets up a refspec configuration such
1025 that all these refs are overwritten by a
<code>git remote update
</code> in the
1029 <dt class=
"hdlist1">
1032 <dt class=
"hdlist1">
1033 --origin
<name
>
1037 Instead of using the remote name
<code>origin
</code> to keep track of the upstream
1038 repository, use
<code><name
></code>. Overrides
<code>clone.defaultRemoteName
</code> from the
1042 <dt class=
"hdlist1">
1045 <dt class=
"hdlist1">
1046 --branch
<name
>
1050 Instead of pointing the newly created HEAD to the branch pointed
1051 to by the cloned repository
’s HEAD, point to
<code><name
></code> branch
1052 instead. In a non-bare repository, this is the branch that will
1054 <code>--branch
</code> can also take tags and detaches the HEAD at that commit
1055 in the resulting repository.
1058 <dt class=
"hdlist1">
1059 -u
<upload-pack
>
1061 <dt class=
"hdlist1">
1062 --upload-pack
<upload-pack
>
1066 When given, and the repository to clone from is accessed
1067 via ssh, this specifies a non-default path for the command
1068 run on the other end.
1071 <dt class=
"hdlist1">
1072 --template=
<template-directory
>
1076 Specify the directory from which templates will be used;
1077 (See the
"TEMPLATE DIRECTORY" section of
<a href=
"git-init.html">git-init(
1)
</a>.)
1080 <dt class=
"hdlist1">
1081 -c
<key
>=
<value
>
1083 <dt class=
"hdlist1">
1084 --config
<key
>=
<value
>
1088 Set a configuration variable in the newly-created repository;
1089 this takes effect immediately after the repository is
1090 initialized, but before the remote history is fetched or any
1091 files checked out. The key is in the same format as expected by
1092 <a href=
"git-config.html">git-config(
1)
</a> (e.g.,
<code>core.eol=true
</code>). If multiple
1093 values are given for the same key, each value will be written to
1094 the config file. This makes it safe, for example, to add
1095 additional fetch refspecs to the origin remote.
1097 <div class=
"paragraph"><p>Due to limitations of the current implementation, some configuration
1098 variables do not take effect until after the initial fetch and checkout.
1099 Configuration variables known to not take effect are:
1100 <code>remote.
<name
>.mirror
</code> and
<code>remote.
<name
>.tagOpt
</code>. Use the
1101 corresponding
<code>--mirror
</code> and
<code>--no-tags
</code> options instead.
</p></div>
1103 <dt class=
"hdlist1">
1104 --depth
<depth
>
1108 Create a
<em>shallow
</em> clone with a history truncated to the
1109 specified number of commits. Implies
<code>--single-branch
</code> unless
1110 <code>--no-single-branch
</code> is given to fetch the histories near the
1111 tips of all branches. If you want to clone submodules shallowly,
1112 also pass
<code>--shallow-submodules
</code>.
1115 <dt class=
"hdlist1">
1116 --shallow-since=
<date
>
1120 Create a shallow clone with a history after the specified time.
1123 <dt class=
"hdlist1">
1124 --shallow-exclude=
<revision
>
1128 Create a shallow clone with a history, excluding commits
1129 reachable from a specified remote branch or tag. This option
1130 can be specified multiple times.
1133 <dt class=
"hdlist1">
1134 --[no-]single-branch
1138 Clone only the history leading to the tip of a single branch,
1139 either specified by the
<code>--branch
</code> option or the primary
1140 branch remote
’s
<code>HEAD
</code> points at.
1141 Further fetches into the resulting repository will only update the
1142 remote-tracking branch for the branch this option was used for the
1143 initial cloning. If the HEAD at the remote did not point at any
1144 branch when
<code>--single-branch
</code> clone was made, no remote-tracking
1148 <dt class=
"hdlist1">
1153 Don
’t clone any tags, and set
1154 <code>remote.
<remote
>.tagOpt=--no-tags
</code> in the config, ensuring
1155 that future
<code>git pull
</code> and
<code>git fetch
</code> operations won
’t follow
1156 any tags. Subsequent explicit tag fetches will still work,
1157 (see
<a href=
"git-fetch.html">git-fetch(
1)
</a>).
1159 <div class=
"paragraph"><p>Can be used in conjunction with
<code>--single-branch
</code> to clone and
1160 maintain a branch with no references other than a single cloned
1161 branch. This is useful e.g. to maintain minimal clones of the default
1162 branch of some repository for search indexing.
</p></div>
1164 <dt class=
"hdlist1">
1165 --recurse-submodules[=
<pathspec
>]
1169 After the clone is created, initialize and clone submodules
1170 within based on the provided pathspec. If no pathspec is
1171 provided, all submodules are initialized and cloned.
1172 This option can be given multiple times for pathspecs consisting
1173 of multiple entries. The resulting clone has
<code>submodule.active
</code> set to
1174 the provided pathspec, or
"." (meaning all submodules) if no
1175 pathspec is provided.
1177 <div class=
"paragraph"><p>Submodules are initialized and cloned using their default settings. This is
1178 equivalent to running
1179 <code>git submodule update --init --recursive
<pathspec
></code> immediately after
1180 the clone is finished. This option is ignored if the cloned repository does
1181 not have a worktree/checkout (i.e. if any of
<code>--no-checkout
</code>/
<code>-n
</code>,
<code>--bare
</code>,
1182 or
<code>--mirror
</code> is given)
</p></div>
1184 <dt class=
"hdlist1">
1185 --[no-]shallow-submodules
1189 All submodules which are cloned will be shallow with a depth of
1.
1192 <dt class=
"hdlist1">
1193 --[no-]remote-submodules
1197 All submodules which are cloned will use the status of the submodule
’s
1198 remote-tracking branch to update the submodule, rather than the
1199 superproject
’s recorded SHA-
1. Equivalent to passing
<code>--remote
</code> to
1200 <code>git submodule update
</code>.
1203 <dt class=
"hdlist1">
1204 --separate-git-dir=
<git-dir
>
1208 Instead of placing the cloned repository where it is supposed
1209 to be, place the cloned repository at the specified directory,
1210 then make a filesystem-agnostic Git symbolic link to there.
1211 The result is Git repository can be separated from working
1215 <dt class=
"hdlist1">
1216 --ref-format=
<ref-format
>
1220 Specify the given ref storage format for the repository. The valid values are:
1222 <div class=
"ulist"><ul>
1225 <code>files
</code> for loose files with packed-refs. This is the default.
1230 <code>reftable
</code> for the reftable format. This format is experimental and its
1231 internals are subject to change.
1236 <dt class=
"hdlist1">
1239 <dt class=
"hdlist1">
1244 The number of submodules fetched at the same time.
1245 Defaults to the
<code>submodule.fetchJobs
</code> option.
1248 <dt class=
"hdlist1">
1253 The (possibly remote) repository to clone from. See the
1254 <a href=
"#URLS">GIT URLS
</a> section below for more information on specifying
1258 <dt class=
"hdlist1">
1263 The name of a new directory to clone into. The
"humanish"
1264 part of the source repository is used if no directory is
1265 explicitly given (
<code>repo
</code> for
<code>/path/to/repo.git
</code> and
<code>foo
</code>
1266 for
<code>host.xz:foo/.git
</code>). Cloning into an existing directory
1267 is only allowed if the directory is empty.
1270 <dt class=
"hdlist1">
1271 --bundle-uri=
<uri
>
1275 Before fetching from the remote, fetch a bundle from the given
1276 <code><uri
></code> and unbundle the data into the local repository. The refs
1277 in the bundle will be stored under the hidden
<code>refs/bundle/*
</code>
1278 namespace. This option is incompatible with
<code>--depth
</code>,
1279 <code>--shallow-since
</code>, and
<code>--shallow-exclude
</code>.
1286 <h2 id=
"_git_urls_a_id_urls_a">GIT URLS
<a id=
"URLS"></a></h2>
1287 <div class=
"sectionbody">
1288 <div class=
"paragraph"><p>In general, URLs contain information about the transport protocol, the
1289 address of the remote server, and the path to the repository.
1290 Depending on the transport protocol, some of this information may be
1292 <div class=
"paragraph"><p>Git supports ssh, git, http, and https protocols (in addition, ftp
1293 and ftps can be used for fetching, but this is inefficient and
1294 deprecated; do not use them).
</p></div>
1295 <div class=
"paragraph"><p>The native transport (i.e. git:// URL) does no authentication and
1296 should be used with caution on unsecured networks.
</p></div>
1297 <div class=
"paragraph"><p>The following syntaxes may be used with them:
</p></div>
1298 <div class=
"ulist"><ul>
1301 ssh://
[user@
]host.xz
[:port
]/path/to/repo.git/
1306 git://host.xz
[:port
]/path/to/repo.git/
1311 http
[s
]://host.xz
[:port
]/path/to/repo.git/
1316 ftp
[s
]://host.xz
[:port
]/path/to/repo.git/
1320 <div class=
"paragraph"><p>An alternative scp-like syntax may also be used with the ssh protocol:
</p></div>
1321 <div class=
"ulist"><ul>
1324 [user@
]host.xz:path/to/repo.git/
1328 <div class=
"paragraph"><p>This syntax is only recognized if there are no slashes before the
1329 first colon. This helps differentiate a local path that contains a
1330 colon. For example the local path
<code>foo:bar
</code> could be specified as an
1331 absolute path or
<code>./foo:bar
</code> to avoid being misinterpreted as an ssh
1333 <div class=
"paragraph"><p>The ssh and git protocols additionally support ~username expansion:
</p></div>
1334 <div class=
"ulist"><ul>
1337 ssh://
[user@
]host.xz
[:port
]/~
[user
]/path/to/repo.git/
1342 git://host.xz
[:port
]/~
[user
]/path/to/repo.git/
1347 [user@
]host.xz:/~
[user
]/path/to/repo.git/
1351 <div class=
"paragraph"><p>For local repositories, also supported by Git natively, the following
1352 syntaxes may be used:
</p></div>
1353 <div class=
"ulist"><ul>
1361 file:///path/to/repo.git/
1365 <div class=
"paragraph"><p>These two syntaxes are mostly equivalent, except the former implies
1366 --local option.
</p></div>
1367 <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
1368 accept a suitable bundle file. See
<a href=
"git-bundle.html">git-bundle(
1)
</a>.
</p></div>
1369 <div class=
"paragraph"><p>When Git doesn
’t know how to handle a certain transport protocol, it
1370 attempts to use the
<em>remote-
<transport
></em> remote helper, if one
1371 exists. To explicitly request a remote helper, the following syntax
1372 may be used:
</p></div>
1373 <div class=
"ulist"><ul>
1376 <transport
>::
<address
>
1380 <div class=
"paragraph"><p>where
<address
> may be a path, a server and path, or an arbitrary
1381 URL-like string recognized by the specific remote helper being
1382 invoked. See
<a href=
"gitremote-helpers.html">gitremote-helpers(
7)
</a> for details.
</p></div>
1383 <div class=
"paragraph"><p>If there are a large number of similarly-named remote repositories and
1384 you want to use a different format for them (such that the URLs you
1385 use will be rewritten into URLs that work), you can create a
1386 configuration section of the form:
</p></div>
1387 <div class=
"listingblock">
1388 <div class=
"content">
1389 <pre><code> [url
"<actual-url-base>"]
1390 insteadOf =
<other-url-base
></code></pre>
1392 <div class=
"paragraph"><p>For example, with this:
</p></div>
1393 <div class=
"listingblock">
1394 <div class=
"content">
1395 <pre><code> [url
"git://git.host.xz/"]
1396 insteadOf = host.xz:/path/to/
1397 insteadOf = work:
</code></pre>
1399 <div class=
"paragraph"><p>a URL like
"work:repo.git" or like
"host.xz:/path/to/repo.git" will be
1400 rewritten in any context that takes a URL to be
"git://git.host.xz/repo.git".
</p></div>
1401 <div class=
"paragraph"><p>If you want to rewrite URLs for push only, you can create a
1402 configuration section of the form:
</p></div>
1403 <div class=
"listingblock">
1404 <div class=
"content">
1405 <pre><code> [url
"<actual-url-base>"]
1406 pushInsteadOf =
<other-url-base
></code></pre>
1408 <div class=
"paragraph"><p>For example, with this:
</p></div>
1409 <div class=
"listingblock">
1410 <div class=
"content">
1411 <pre><code> [url
"ssh://example.org/"]
1412 pushInsteadOf = git://example.org/
</code></pre>
1414 <div class=
"paragraph"><p>a URL like
"git://example.org/path/to/repo.git" will be rewritten to
1415 "ssh://example.org/path/to/repo.git" for pushes, but pulls will still
1416 use the original URL.
</p></div>
1420 <h2 id=
"_examples">EXAMPLES
</h2>
1421 <div class=
"sectionbody">
1422 <div class=
"ulist"><ul>
1425 Clone from upstream:
1427 <div class=
"listingblock">
1428 <div class=
"content">
1429 <pre><code>$ git clone git://git.kernel.org/pub/scm/.../linux.git my-linux
1436 Make a local clone that borrows from the current directory, without checking things out:
1438 <div class=
"listingblock">
1439 <div class=
"content">
1440 <pre><code>$ git clone -l -s -n . ../copy
1442 $ git show-branch
</code></pre>
1447 Clone from upstream while borrowing from an existing local directory:
1449 <div class=
"listingblock">
1450 <div class=
"content">
1451 <pre><code>$ git clone --reference /git/linux.git \
1452 git://git.kernel.org/pub/scm/.../linux.git \
1454 $ cd my-linux
</code></pre>
1459 Create a bare repository to publish your changes to the public:
1461 <div class=
"listingblock">
1462 <div class=
"content">
1463 <pre><code>$ git clone --bare -l /home/proj/.git /pub/scm/proj.git
</code></pre>
1470 <h2 id=
"_configuration">CONFIGURATION
</h2>
1471 <div class=
"sectionbody">
1472 <div class=
"paragraph"><p>Everything below this line in this section is selectively included
1473 from the
<a href=
"git-config.html">git-config(
1)
</a> documentation. The content is the same
1474 as what
’s found there:
</p></div>
1475 <div class=
"dlist"><dl>
1476 <dt class=
"hdlist1">
1481 Specify the directory from which templates will be copied.
1482 (See the
"TEMPLATE DIRECTORY" section of
<a href=
"git-init.html">git-init(
1)
</a>.)
1485 <dt class=
"hdlist1">
1490 Allows overriding the default branch name e.g. when initializing
1494 <dt class=
"hdlist1">
1495 clone.defaultRemoteName
1499 The name of the remote to create when cloning a repository. Defaults to
1500 <code>origin
</code>, and can be overridden by passing the
<code>--origin
</code> command-line
1501 option to
<a href=
"git-clone.html">git-clone(
1)
</a>.
1504 <dt class=
"hdlist1">
1509 Reject cloning a repository if it is a shallow one; this can be overridden by
1510 passing the
<code>--reject-shallow
</code> option on the command line. See
<a href=
"git-clone.html">git-clone(
1)
</a>
1513 <dt class=
"hdlist1">
1514 clone.filterSubmodules
1518 If a partial clone filter is provided (see
<code>--filter
</code> in
1519 <a href=
"git-rev-list.html">git-rev-list(
1)
</a>) and
<code>--recurse-submodules
</code> is used, also apply
1520 the filter to submodules.
1527 <h2 id=
"_git">GIT
</h2>
1528 <div class=
"sectionbody">
1529 <div class=
"paragraph"><p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p></div>
1533 <div id=
"footnotes"><hr /></div>
1535 <div id=
"footer-text">
1537 2024-
03-
01 17:
30:
58 PST