2 <html xmlns=
"http://www.w3.org/1999/xhtml" lang=
"en">
4 <meta charset=
"UTF-8"/>
5 <meta http-equiv=
"X-UA-Compatible" content=
"IE=edge"/>
6 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0"/>
7 <meta name=
"generator" content=
"Asciidoctor 2.0.20"/>
8 <title>git-submodule(
1)
</title>
9 <link rel=
"stylesheet" href=
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"/>
11 /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
12 /* Uncomment the following line when using as a custom stylesheet */
13 /* @import
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
14 html{font-family:sans-serif;-webkit-text-size-adjust:
100%}
16 a:focus{outline:thin dotted}
17 a:active,a:hover{outline:
0}
18 h1{font-size:
2em;margin:
.67em
0}
19 b,strong{font-weight:bold}
21 abbr[title]{cursor:help;border-bottom:
1px dotted #dddddf;text-decoration:none}
22 dfn{font-style:italic}
24 mark{background:#ff0;color:#
000}
25 code,kbd,pre,samp{font-family:monospace;font-size:
1em}
26 pre{white-space:pre-wrap}
27 q{quotes:
"\201C" "\201D" "\2018" "\2019"}
29 sub,sup{font-size:
75%;line-height:
0;position:relative;vertical-align:baseline}
33 svg:not(:root){overflow:hidden}
35 audio,video{display:inline-block}
36 audio:not([controls]){display:none;height:
0}
37 fieldset{border:
1px solid silver;margin:
0 2px;padding:
.35em
.625em
.75em}
38 legend{border:
0;padding:
0}
39 button,input,select,textarea{font-family:inherit;font-size:
100%;margin:
0}
40 button,input{line-height:normal}
41 button,select{text-transform:none}
42 button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
43 button[disabled],html input[disabled]{cursor:default}
44 input[type=checkbox],input[type=radio]{padding:
0}
45 button::-moz-focus-inner,input::-moz-focus-inner{border:
0;padding:
0}
46 textarea{overflow:auto;vertical-align:top}
47 table{border-collapse:collapse;border-spacing:
0}
48 *,::before,::after{box-sizing:border-box}
49 html,body{font-size:
100%}
50 body{background:#fff;color:rgba(
0,
0,
0,
.8);padding:
0;margin:
0;font-family:
"Noto Serif",
"DejaVu Serif",serif;line-height:
1;position:relative;cursor:auto;-moz-tab-size:
4;-o-tab-size:
4;tab-size:
4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
51 a:hover{cursor:pointer}
52 img,object,embed{max-width:
100%;height:auto}
53 object,embed{height:
100%}
54 img{-ms-interpolation-mode:bicubic}
55 .left{float:left!important}
56 .right{float:right!important}
57 .text-left{text-align:left!important}
58 .text-right{text-align:right!important}
59 .text-center{text-align:center!important}
60 .text-justify{text-align:justify!important}
62 img,object,svg{display:inline-block;vertical-align:middle}
63 textarea{height:auto;min-height:
50px}
65 .subheader,.admonitionblock td.content
>.title,.audioblock
>.title,.exampleblock
>.title,.imageblock
>.title,.listingblock
>.title,.literalblock
>.title,.stemblock
>.title,.openblock
>.title,.paragraph
>.title,.quoteblock
>.title,table.tableblock
>.title,.verseblock
>.title,.videoblock
>.title,.dlist
>.title,.olist
>.title,.ulist
>.title,.qlist
>.title,.hdlist
>.title{line-height:
1.45;color:#
7a2518;font-weight:
400;margin-top:
0;margin-bottom:
.25em}
66 div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:
0;padding:
0}
67 a{color:#
2156a5;text-decoration:underline;line-height:inherit}
68 a:hover,a:focus{color:#
1d4b8f}
70 p{line-height:
1.6;margin-bottom:
1.25em;text-rendering:optimizeLegibility}
71 p aside{font-size:
.875em;line-height:
1.35;font-style:italic}
72 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-weight:
300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:
1em;margin-bottom:
.5em;line-height:
1.0125em}
73 h1 small,h2 small,h3 small,#toctitle small,.sidebarblock
>.content
>.title small,h4 small,h5 small,h6 small{font-size:
60%;color:#e99b8f;line-height:
0}
75 h2{font-size:
1.6875em}
76 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.375em}
77 h4,h5{font-size:
1.125em}
79 hr{border:solid #dddddf;border-width:
1px
0 0;clear:both;margin:
1.25em
0 1.1875em}
80 em,i{font-style:italic;line-height:inherit}
81 strong,b{font-weight:bold;line-height:inherit}
82 small{font-size:
60%;line-height:inherit}
83 code{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;font-weight:
400;color:rgba(
0,
0,
0,
.9)}
84 ul,ol,dl{line-height:
1.6;margin-bottom:
1.25em;list-style-position:outside;font-family:inherit}
85 ul,ol{margin-left:
1.5em}
86 ul li ul,ul li ol{margin-left:
1.25em;margin-bottom:
0}
87 ul.circle{list-style-type:circle}
88 ul.disc{list-style-type:disc}
89 ul.square{list-style-type:square}
90 ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
91 ol li ul,ol li ol{margin-left:
1.25em;margin-bottom:
0}
92 dl dt{margin-bottom:
.3125em;font-weight:bold}
93 dl dd{margin-bottom:
1.25em}
94 blockquote{margin:
0 0 1.25em;padding:
.5625em
1.25em
0 1.1875em;border-left:
1px solid #ddd}
95 blockquote,blockquote p{line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
96 @media screen and (min-width:
768px){h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2}
98 h2{font-size:
2.3125em}
99 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.6875em}
100 h4{font-size:
1.4375em}}
101 table{background:#fff;margin-bottom:
1.25em;border:
1px solid #dedede;word-wrap:normal}
102 table thead,table tfoot{background:#f7f8f7}
103 table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:
.5em
.625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8);text-align:left}
104 table tr th,table tr td{padding:
.5625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8)}
105 table tr.even,table tr.alt{background:#f8f8f7}
106 table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:
1.6}
107 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2;word-spacing:-
.05em}
108 h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock
>.content
>.title strong,h4 strong,h5 strong,h6 strong{font-weight:
400}
109 .center{margin-left:auto;margin-right:auto}
111 .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:
" ";display:table}
112 .clearfix::after,.float-group::after{clear:both}
113 :not(pre).nobreak{word-wrap:normal}
114 :not(pre).nowrap{white-space:nowrap}
115 :not(pre).pre-wrap{white-space:pre-wrap}
116 :not(pre):not([class^=L])
>code{font-size:
.9375em;font-style:normal!important;letter-spacing:
0;padding:
.1em
.5ex;word-spacing:-
.15em;background:#f7f7f8;border-radius:
4px;line-height:
1.45;text-rendering:optimizeSpeed}
117 pre{color:rgba(
0,
0,
0,
.9);font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;line-height:
1.45;text-rendering:optimizeSpeed}
118 pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
119 pre
>code{display:block}
120 pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
121 em em{font-style:normal}
122 strong strong{font-weight:
400}
123 .keyseq{color:rgba(
51,
51,
51,
.8)}
124 kbd{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;display:inline-block;color:rgba(
0,
0,
0,
.8);font-size:
.65em;line-height:
1.45;background:#f7f7f7;border:
1px solid #ccc;border-radius:
3px;box-shadow:
0 1px
0 rgba(
0,
0,
0,
.2),inset
0 0 0 .1em #fff;margin:
0 .15em;padding:
.2em
.5em;vertical-align:middle;position:relative;top:-
.1em;white-space:nowrap}
125 .keyseq kbd:first-child{margin-left:
0}
126 .keyseq kbd:last-child{margin-right:
0}
127 .menuseq,.menuref{color:#
000}
128 .menuseq b:not(.caret),.menuref{font-weight:inherit}
129 .menuseq{word-spacing:-
.02em}
130 .menuseq b.caret{font-size:
1.25em;line-height:
.8}
131 .menuseq i.caret{font-weight:bold;text-align:center;width:
.45em}
132 b.button::before,b.button::after{position:relative;top:-
1px;font-weight:
400}
133 b.button::before{content:
"[";padding:
0 3px
0 2px}
134 b.button::after{content:
"]";padding:
0 2px
0 3px}
135 p a
>code:hover{color:rgba(
0,
0,
0,
.9)}
136 #header,#content,#footnotes,#footer{width:
100%;margin:
0 auto;max-width:
62.5em;*zoom:
1;position:relative;padding-left:
.9375em;padding-right:
.9375em}
137 #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:
" ";display:table}
138 #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
139 #content{margin-top:
1.25em}
140 #content::before{content:none}
141 #header
>h1:first-child{color:rgba(
0,
0,
0,
.85);margin-top:
2.25rem;margin-bottom:
0}
142 #header
>h1:first-child+#toc{margin-top:
8px;border-top:
1px solid #dddddf}
143 #header
>h1:only-child,body.toc2 #header
>h1:nth-last-child(
2){border-bottom:
1px solid #dddddf;padding-bottom:
8px}
144 #header .details{border-bottom:
1px solid #dddddf;line-height:
1.45;padding-top:
.25em;padding-bottom:
.25em;padding-left:
.25em;color:rgba(
0,
0,
0,
.6);display:flex;flex-flow:row wrap}
145 #header .details span:first-child{margin-left:-
.125em}
146 #header .details span.email a{color:rgba(
0,
0,
0,
.85)}
147 #header .details br{display:none}
148 #header .details br+span::before{content:
"\00a0\2013\00a0"}
149 #header .details br+span.author::before{content:
"\00a0\22c5\00a0";color:rgba(
0,
0,
0,
.85)}
150 #header .details br+span#revremark::before{content:
"\00a0|\00a0"}
151 #header #revnumber{text-transform:capitalize}
152 #header #revnumber::after{content:
"\00a0"}
153 #content
>h1:first-child:not([class]){color:rgba(
0,
0,
0,
.85);border-bottom:
1px solid #dddddf;padding-bottom:
8px;margin-top:
0;padding-top:
1rem;margin-bottom:
1.25rem}
154 #toc{border-bottom:
1px solid #e7e7e9;padding-bottom:
.5em}
155 #toc
>ul{margin-left:
.125em}
156 #toc ul.sectlevel0
>li
>a{font-style:italic}
157 #toc ul.sectlevel0 ul.sectlevel1{margin:
.5em
0}
158 #toc ul{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;list-style-type:none}
159 #toc li{line-height:
1.3334;margin-top:
.3334em}
160 #toc a{text-decoration:none}
161 #toc a:active{text-decoration:underline}
162 #toctitle{color:#
7a2518;font-size:
1.2em}
163 @media screen and (min-width:
768px){#toctitle{font-size:
1.375em}
164 body.toc2{padding-left:
15em;padding-right:
0}
165 #toc.toc2{margin-top:
0!important;background:#f8f8f7;position:fixed;width:
15em;left:
0;top:
0;border-right:
1px solid #e7e7e9;border-top-width:
0!important;border-bottom-width:
0!important;z-index:
1000;padding:
1.25em
1em;height:
100%;overflow:auto}
166 #toc.toc2 #toctitle{margin-top:
0;margin-bottom:
.8rem;font-size:
1.2em}
167 #toc.toc2
>ul{font-size:
.9em;margin-bottom:
0}
168 #toc.toc2 ul ul{margin-left:
0;padding-left:
1em}
169 #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:
0;margin-top:
.5em;margin-bottom:
.5em}
170 body.toc2.toc-right{padding-left:
0;padding-right:
15em}
171 body.toc2.toc-right #toc.toc2{border-right-width:
0;border-left:
1px solid #e7e7e9;left:auto;right:
0}}
172 @media screen and (min-width:
1280px){body.toc2{padding-left:
20em;padding-right:
0}
173 #toc.toc2{width:
20em}
174 #toc.toc2 #toctitle{font-size:
1.375em}
175 #toc.toc2
>ul{font-size:
.95em}
176 #toc.toc2 ul ul{padding-left:
1.25em}
177 body.toc2.toc-right{padding-left:
0;padding-right:
20em}}
178 #content #toc{border:
1px solid #e0e0dc;margin-bottom:
1.25em;padding:
1.25em;background:#f8f8f7;border-radius:
4px}
179 #content #toc
>:first-child{margin-top:
0}
180 #content #toc
>:last-child{margin-bottom:
0}
181 #footer{max-width:none;background:rgba(
0,
0,
0,
.8);padding:
1.25em}
182 #footer-text{color:hsla(
0,
0%,
100%,
.8);line-height:
1.44}
183 #content{margin-bottom:
.625em}
184 .sect1{padding-bottom:
.625em}
185 @media screen and (min-width:
768px){#content{margin-bottom:
1.25em}
186 .sect1{padding-bottom:
1.25em}}
187 .sect1:last-child{padding-bottom:
0}
188 .sect1+.sect1{border-top:
1px solid #e7e7e9}
189 #content h1
>a.anchor,h2
>a.anchor,h3
>a.anchor,#toctitle
>a.anchor,.sidebarblock
>.content
>.title
>a.anchor,h4
>a.anchor,h5
>a.anchor,h6
>a.anchor{position:absolute;z-index:
1001;width:
1.5ex;margin-left:-
1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:
400}
190 #content h1
>a.anchor::before,h2
>a.anchor::before,h3
>a.anchor::before,#toctitle
>a.anchor::before,.sidebarblock
>.content
>.title
>a.anchor::before,h4
>a.anchor::before,h5
>a.anchor::before,h6
>a.anchor::before{content:
"\00A7";font-size:
.85em;display:block;padding-top:
.1em}
191 #content h1:hover
>a.anchor,#content h1
>a.anchor:hover,h2:hover
>a.anchor,h2
>a.anchor:hover,h3:hover
>a.anchor,#toctitle:hover
>a.anchor,.sidebarblock
>.content
>.title:hover
>a.anchor,h3
>a.anchor:hover,#toctitle
>a.anchor:hover,.sidebarblock
>.content
>.title
>a.anchor:hover,h4:hover
>a.anchor,h4
>a.anchor:hover,h5:hover
>a.anchor,h5
>a.anchor:hover,h6:hover
>a.anchor,h6
>a.anchor:hover{visibility:visible}
192 #content h1
>a.link,h2
>a.link,h3
>a.link,#toctitle
>a.link,.sidebarblock
>.content
>.title
>a.link,h4
>a.link,h5
>a.link,h6
>a.link{color:#ba3925;text-decoration:none}
193 #content h1
>a.link:hover,h2
>a.link:hover,h3
>a.link:hover,#toctitle
>a.link:hover,.sidebarblock
>.content
>.title
>a.link:hover,h4
>a.link:hover,h5
>a.link:hover,h6
>a.link:hover{color:#a53221}
194 details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:
1.25em}
195 details{margin-left:
1.25rem}
196 details
>summary{cursor:pointer;display:block;position:relative;line-height:
1.6;margin-bottom:
.625rem;outline:none;-webkit-tap-highlight-color:transparent}
197 details
>summary::-webkit-details-marker{display:none}
198 details
>summary::before{content:
"";border:solid transparent;border-left:solid;border-width:
.3em
0 .3em
.5em;position:absolute;top:
.5em;left:-
1.25rem;transform:translateX(
15%)}
199 details[open]
>summary::before{border:solid transparent;border-top:solid;border-width:
.5em
.3em
0;transform:translateY(
15%)}
200 details
>summary::after{content:
"";width:
1.25rem;height:
1em;position:absolute;top:
.3em;left:-
1.25rem}
201 .admonitionblock td.content
>.title,.audioblock
>.title,.exampleblock
>.title,.imageblock
>.title,.listingblock
>.title,.literalblock
>.title,.stemblock
>.title,.openblock
>.title,.paragraph
>.title,.quoteblock
>.title,table.tableblock
>.title,.verseblock
>.title,.videoblock
>.title,.dlist
>.title,.olist
>.title,.ulist
>.title,.qlist
>.title,.hdlist
>.title{text-rendering:optimizeLegibility;text-align:left;font-family:
"Noto Serif",
"DejaVu Serif",serif;font-size:
1rem;font-style:italic}
202 table.tableblock.fit-content
>caption.title{white-space:nowrap;width:
0}
203 .paragraph.lead
>p,#preamble
>.sectionbody
>[class=paragraph]:first-of-type p{font-size:
1.21875em;line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
204 .admonitionblock
>table{border-collapse:separate;border:
0;background:none;width:
100%}
205 .admonitionblock
>table td.icon{text-align:center;width:
80px}
206 .admonitionblock
>table td.icon img{max-width:none}
207 .admonitionblock
>table td.icon .title{font-weight:bold;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;text-transform:uppercase}
208 .admonitionblock
>table td.content{padding-left:
1.125em;padding-right:
1.25em;border-left:
1px solid #dddddf;color:rgba(
0,
0,
0,
.6);word-wrap:anywhere}
209 .admonitionblock
>table td.content
>:last-child
>:last-child{margin-bottom:
0}
210 .exampleblock
>.content{border:
1px solid #e6e6e6;margin-bottom:
1.25em;padding:
1.25em;background:#fff;border-radius:
4px}
211 .sidebarblock{border:
1px solid #dbdbd6;margin-bottom:
1.25em;padding:
1.25em;background:#f3f3f2;border-radius:
4px}
212 .sidebarblock
>.content
>.title{color:#
7a2518;margin-top:
0;text-align:center}
213 .exampleblock
>.content
>:first-child,.sidebarblock
>.content
>:first-child{margin-top:
0}
214 .exampleblock
>.content
>:last-child,.exampleblock
>.content
>:last-child
>:last-child,.exampleblock
>.content .olist
>ol
>li:last-child
>:last-child,.exampleblock
>.content .ulist
>ul
>li:last-child
>:last-child,.exampleblock
>.content .qlist
>ol
>li:last-child
>:last-child,.sidebarblock
>.content
>:last-child,.sidebarblock
>.content
>:last-child
>:last-child,.sidebarblock
>.content .olist
>ol
>li:last-child
>:last-child,.sidebarblock
>.content .ulist
>ul
>li:last-child
>:last-child,.sidebarblock
>.content .qlist
>ol
>li:last-child
>:last-child{margin-bottom:
0}
215 .literalblock pre,.listingblock
>.content
>pre{border-radius:
4px;overflow-x:auto;padding:
1em;font-size:
.8125em}
216 @media screen and (min-width:
768px){.literalblock pre,.listingblock
>.content
>pre{font-size:
.90625em}}
217 @media screen and (min-width:
1280px){.literalblock pre,.listingblock
>.content
>pre{font-size:
1em}}
218 .literalblock pre,.listingblock
>.content
>pre:not(.highlight),.listingblock
>.content
>pre[class=highlight],.listingblock
>.content
>pre[class^=
"highlight "]{background:#f7f7f8}
219 .literalblock.output pre{color:#f7f7f8;background:rgba(
0,
0,
0,
.9)}
220 .listingblock
>.content{position:relative}
221 .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:
.75em;top:
.425rem;right:
.5rem;line-height:
1;text-transform:uppercase;color:inherit;opacity:
.5}
222 .listingblock:hover code[data-lang]::before{display:block}
223 .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:
.5em;color:inherit;opacity:
.5}
224 .listingblock.terminal pre .command:not([data-prompt])::before{content:
"$"}
225 .listingblock pre.highlightjs{padding:
0}
226 .listingblock pre.highlightjs
>code{padding:
1em;border-radius:
4px}
227 .listingblock pre.prettyprint{border-width:
0}
228 .prettyprint{background:#f7f7f8}
229 pre.prettyprint .linenums{line-height:
1.45;margin-left:
2em}
230 pre.prettyprint li{background:none;list-style-type:inherit;padding-left:
0}
231 pre.prettyprint li code[data-lang]::before{opacity:
1}
232 pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
233 table.linenotable{border-collapse:separate;border:
0;margin-bottom:
0;background:none}
234 table.linenotable td[class]{color:inherit;vertical-align:top;padding:
0;line-height:inherit;white-space:normal}
235 table.linenotable td.code{padding-left:
.75em}
236 table.linenotable td.linenos,pre.pygments .linenos{border-right:
1px solid;opacity:
.35;padding-right:
.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
237 pre.pygments span.linenos{display:inline-block;margin-right:
.75em}
238 .quoteblock{margin:
0 1em
1.25em
1.5em;display:table}
239 .quoteblock:not(.excerpt)
>.title{margin-left:-
1.5em;margin-bottom:
.75em}
240 .quoteblock blockquote,.quoteblock p{color:rgba(
0,
0,
0,
.85);font-size:
1.15rem;line-height:
1.75;word-spacing:
.1em;letter-spacing:
0;font-style:italic;text-align:justify}
241 .quoteblock blockquote{margin:
0;padding:
0;border:
0}
242 .quoteblock blockquote::before{content:
"\201c";float:left;font-size:
2.75em;font-weight:bold;line-height:
.6em;margin-left:-
.6em;color:#
7a2518;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.1)}
243 .quoteblock blockquote
>.paragraph:last-child p{margin-bottom:
0}
244 .quoteblock .attribution{margin-top:
.75em;margin-right:
.5ex;text-align:right}
245 .verseblock{margin:
0 1em
1.25em}
246 .verseblock pre{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-size:
1.15rem;color:rgba(
0,
0,
0,
.85);font-weight:
300;text-rendering:optimizeLegibility}
247 .verseblock pre strong{font-weight:
400}
248 .verseblock .attribution{margin-top:
1.25rem;margin-left:
.5ex}
249 .quoteblock .attribution,.verseblock .attribution{font-size:
.9375em;line-height:
1.45;font-style:italic}
250 .quoteblock .attribution br,.verseblock .attribution br{display:none}
251 .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-
.025em;color:rgba(
0,
0,
0,
.6)}
252 .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
253 .quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:
1.6;word-spacing:
0}
254 .quoteblock.abstract{margin:
0 1em
1.25em;display:block}
255 .quoteblock.abstract
>.title{margin:
0 0 .375em;font-size:
1.15em;text-align:center}
256 .quoteblock.excerpt
>blockquote,.quoteblock .quoteblock{padding:
0 0 .25em
1em;border-left:
.25em solid #dddddf}
257 .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:
0}
258 .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:
1.0625rem}
259 .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:
.85rem;text-align:left;margin-right:
0}
260 p.tableblock:last-child{margin-bottom:
0}
261 td.tableblock
>.content{margin-bottom:
1.25em;word-wrap:anywhere}
262 td.tableblock
>.content
>:last-child{margin-bottom:-
1.25em}
263 table.tableblock,th.tableblock,td.tableblock{border:
0 solid #dedede}
264 table.grid-all
>*
>tr
>*{border-width:
1px}
265 table.grid-cols
>*
>tr
>*{border-width:
0 1px}
266 table.grid-rows
>*
>tr
>*{border-width:
1px
0}
267 table.frame-all{border-width:
1px}
268 table.frame-ends{border-width:
1px
0}
269 table.frame-sides{border-width:
0 1px}
270 table.frame-none
>colgroup+*
>:first-child
>*,table.frame-sides
>colgroup+*
>:first-child
>*{border-top-width:
0}
271 table.frame-none
>:last-child
>:last-child
>*,table.frame-sides
>:last-child
>:last-child
>*{border-bottom-width:
0}
272 table.frame-none
>*
>tr
>:first-child,table.frame-ends
>*
>tr
>:first-child{border-left-width:
0}
273 table.frame-none
>*
>tr
>:last-child,table.frame-ends
>*
>tr
>:last-child{border-right-width:
0}
274 table.stripes-all
>*
>tr,table.stripes-odd
>*
>tr:nth-of-type(odd),table.stripes-even
>*
>tr:nth-of-type(even),table.stripes-hover
>*
>tr:hover{background:#f8f8f7}
275 th.halign-left,td.halign-left{text-align:left}
276 th.halign-right,td.halign-right{text-align:right}
277 th.halign-center,td.halign-center{text-align:center}
278 th.valign-top,td.valign-top{vertical-align:top}
279 th.valign-bottom,td.valign-bottom{vertical-align:bottom}
280 th.valign-middle,td.valign-middle{vertical-align:middle}
281 table thead th,table tfoot th{font-weight:bold}
282 tbody tr th{background:#f7f8f7}
283 tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(
0,
0,
0,
.8);font-weight:bold}
284 p.tableblock
>code:only-child{background:none;padding:
0}
285 p.tableblock{font-size:
1em}
286 ol{margin-left:
1.75em}
287 ul li ol{margin-left:
1.5em}
288 dl dd{margin-left:
1.125em}
289 dl dd:last-child,dl dd:last-child
>:last-child{margin-bottom:
0}
290 li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:
.625em}
291 ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
292 ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:
.625em}
293 ul.unstyled,ol.unstyled{margin-left:
0}
294 li
>p:empty:only-child::before{content:
"";display:inline-block}
295 ul.checklist
>li
>p:first-child{margin-left:-
1em}
296 ul.checklist
>li
>p:first-child
>.fa-square-o:first-child,ul.checklist
>li
>p:first-child
>.fa-check-square-o:first-child{width:
1.25em;font-size:
.8em;position:relative;bottom:
.125em}
297 ul.checklist
>li
>p:first-child
>input[type=checkbox]:first-child{margin-right:
.25em}
298 ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:
0 0 .625em -
1.25em}
299 ul.inline
>li{margin-left:
1.25em}
300 .unstyled dl dt{font-weight:
400;font-style:normal}
301 ol.arabic{list-style-type:decimal}
302 ol.decimal{list-style-type:decimal-leading-zero}
303 ol.loweralpha{list-style-type:lower-alpha}
304 ol.upperalpha{list-style-type:upper-alpha}
305 ol.lowerroman{list-style-type:lower-roman}
306 ol.upperroman{list-style-type:upper-roman}
307 ol.lowergreek{list-style-type:lower-greek}
308 .hdlist
>table,.colist
>table{border:
0;background:none}
309 .hdlist
>table
>tbody
>tr,.colist
>table
>tbody
>tr{background:none}
310 td.hdlist1,td.hdlist2{vertical-align:top;padding:
0 .625em}
311 td.hdlist1{font-weight:bold;padding-bottom:
1.25em}
312 td.hdlist2{word-wrap:anywhere}
313 .literalblock+.colist,.listingblock+.colist{margin-top:-
.5em}
314 .colist td:not([class]):first-child{padding:
.4em
.75em
0;line-height:
1;vertical-align:top}
315 .colist td:not([class]):first-child img{max-width:none}
316 .colist td:not([class]):last-child{padding:
.25em
0}
317 .thumb,.th{line-height:
0;display:inline-block;border:
4px solid #fff;box-shadow:
0 0 0 1px #ddd}
318 .imageblock.left{margin:
.25em
.625em
1.25em
0}
319 .imageblock.right{margin:
.25em
0 1.25em
.625em}
320 .imageblock
>.title{margin-bottom:
0}
321 .imageblock.thumb,.imageblock.th{border-width:
6px}
322 .imageblock.thumb
>.title,.imageblock.th
>.title{padding:
0 .125em}
323 .image.left,.image.right{margin-top:
.25em;margin-bottom:
.25em;display:inline-block;line-height:
0}
324 .image.left{margin-right:
.625em}
325 .image.right{margin-left:
.625em}
326 a.image{text-decoration:none;display:inline-block}
327 a.image object{pointer-events:none}
328 sup.footnote,sup.footnoteref{font-size:
.875em;position:static;vertical-align:super}
329 sup.footnote a,sup.footnoteref a{text-decoration:none}
330 sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
331 #footnotes{padding-top:
.75em;padding-bottom:
.75em;margin-bottom:
.625em}
332 #footnotes hr{width:
20%;min-width:
6.25em;margin:-
.25em
0 .75em;border-width:
1px
0 0}
333 #footnotes .footnote{padding:
0 .375em
0 .225em;line-height:
1.3334;font-size:
.875em;margin-left:
1.2em;margin-bottom:
.2em}
334 #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-
1.05em}
335 #footnotes .footnote:last-of-type{margin-bottom:
0}
336 #content #footnotes{margin-top:-
.625em;margin-bottom:
0;padding:
.75em
0}
337 div.unbreakable{page-break-inside:avoid}
338 .big{font-size:larger}
339 .small{font-size:smaller}
340 .underline{text-decoration:underline}
341 .overline{text-decoration:overline}
342 .line-through{text-decoration:line-through}
344 .aqua-background{background:#
00fafa}
346 .black-background{background:#
000}
348 .blue-background{background:#
0000fa}
349 .fuchsia{color:#bf00bf}
350 .fuchsia-background{background:#fa00fa}
352 .gray-background{background:#
7d7d7d}
353 .green{color:#
006000}
354 .green-background{background:#
007d00}
356 .lime-background{background:#
00fa00}
357 .maroon{color:#
600000}
358 .maroon-background{background:#
7d0000}
360 .navy-background{background:#
00007d}
361 .olive{color:#
606000}
362 .olive-background{background:#
7d7d00}
363 .purple{color:#
600060}
364 .purple-background{background:#
7d007d}
366 .red-background{background:#fa0000}
367 .silver{color:#
909090}
368 .silver-background{background:#bcbcbc}
370 .teal-background{background:#
007d7d}
371 .white{color:#bfbfbf}
372 .white-background{background:#fafafa}
373 .yellow{color:#bfbf00}
374 .yellow-background{background:#fafa00}
375 span.icon
>.fa{cursor:default}
376 a span.icon
>.fa{cursor:inherit}
377 .admonitionblock td.icon [class^=
"fa icon-"]{font-size:
2.5em;text-shadow:
1px
1px
2px rgba(
0,
0,
0,
.5);cursor:default}
378 .admonitionblock td.icon .icon-note::before{content:
"\f05a";color:#
19407c}
379 .admonitionblock td.icon .icon-tip::before{content:
"\f0eb";text-shadow:
1px
1px
2px rgba(
155,
155,
0,
.8);color:#
111}
380 .admonitionblock td.icon .icon-warning::before{content:
"\f071";color:#bf6900}
381 .admonitionblock td.icon .icon-caution::before{content:
"\f06d";color:#bf3400}
382 .admonitionblock td.icon .icon-important::before{content:
"\f06a";color:#bf0000}
383 .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(
0,
0,
0,
.8);border-radius:
50%;text-align:center;font-size:
.75em;width:
1.67em;height:
1.67em;line-height:
1.67em;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
384 .conum[data-value] *{color:#fff!important}
385 .conum[data-value]+b{display:none}
386 .conum[data-value]::after{content:attr(data-value)}
387 pre .conum[data-value]{position:relative;top:-
.125em}
388 b.conum *{color:inherit!important}
389 .conum:not([data-value]):empty{display:none}
390 dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
391 h1,h2,p,td.content,span.alt,summary{letter-spacing:-
.01em}
392 p strong,td.content strong,div.footnote strong{letter-spacing:-
.005em}
393 p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:
1.0625rem}
394 p{margin-bottom:
1.25rem}
395 .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:
1em}
396 .exampleblock
>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:
0 1px
4px #e0e0dc}
397 .print-only{display:none!important}
398 @page{margin:
1.25cm
.75cm}
399 @media print{*{box-shadow:none!important;text-shadow:none!important}
401 a{color:inherit!important;text-decoration:underline!important}
402 a.bare,a[href^=
"#"],a[href^=
"mailto:"]{text-decoration:none!important}
403 a[href^=
"http:"]:not(.bare)::after,a[href^=
"https:"]:not(.bare)::after{content:
"(" attr(href)
")";display:inline-block;font-size:
.875em;padding-left:
.25em}
404 abbr[title]{border-bottom:
1px dotted}
405 abbr[title]::after{content:
" (" attr(title)
")"}
406 pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
407 thead{display:table-header-group}
409 p,blockquote,dt,td.content{font-size:
1em;orphans:
3;widows:
3}
410 h2,h3,#toctitle,.sidebarblock
>.content
>.title{page-break-after:avoid}
411 #header,#content,#footnotes,#footer{max-width:none}
412 #toc,.sidebarblock,.exampleblock
>.content{background:none!important}
413 #toc{border-bottom:
1px solid #dddddf!important;padding-bottom:
0!important}
414 body.book #header{text-align:center}
415 body.book #header
>h1:first-child{border:
0!important;margin:
2.5em
0 1em}
416 body.book #header .details{border:
0!important;display:block;padding:
0!important}
417 body.book #header .details span:first-child{margin-left:
0!important}
418 body.book #header .details br{display:block}
419 body.book #header .details br+span::before{content:none!important}
420 body.book #toc{border:
0!important;text-align:left!important;padding:
0!important;margin:
0!important}
421 body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1
>h2{page-break-before:always}
422 .listingblock code[data-lang]::before{display:block}
423 #footer{padding:
0 .9375em}
424 .hide-on-print{display:none!important}
425 .print-only{display:block!important}
426 .hide-for-print{display:none!important}
427 .show-for-print{display:inherit!important}}
428 @media amzn-kf8,print{#header
>h1:first-child{margin-top:
1.25rem}
429 .sect1{padding:
0!important}
430 .sect1+.sect1{border:
0}
431 #footer{background:none}
432 #footer-text{color:rgba(
0,
0,
0,
.6);font-size:
.9em}}
433 @media amzn-kf8{#header,#content,#footnotes,#footer{padding:
0}}
441 <body class=
"manpage">
443 <h1>git-submodule(
1) Manual Page
</h1>
444 <h2 id=
"_name">NAME
</h2>
445 <div class=
"sectionbody">
446 <p>git-submodule - Initialize, update or inspect submodules
</p>
451 <h2 id=
"_synopsis">SYNOPSIS
</h2>
452 <div class=
"sectionbody">
453 <div class=
"verseblock">
454 <pre class=
"content"><em>git submodule
</em> [--quiet] [--cached]
455 <em>git submodule
</em> [--quiet] add [
<options
>] [--]
<repository
> [
<path
>]
456 <em>git submodule
</em> [--quiet] status [--cached] [--recursive] [--] [
<path
>…​]
457 <em>git submodule
</em> [--quiet] init [--] [
<path
>…​]
458 <em>git submodule
</em> [--quiet] deinit [-f|--force] (--all|[--]
<path
>…​)
459 <em>git submodule
</em> [--quiet] update [
<options
>] [--] [
<path
>…​]
460 <em>git submodule
</em> [--quiet] set-branch [
<options
>] [--]
<path
>
461 <em>git submodule
</em> [--quiet] set-url [--]
<path
> <newurl
>
462 <em>git submodule
</em> [--quiet] summary [
<options
>] [--] [
<path
>…​]
463 <em>git submodule
</em> [--quiet] foreach [--recursive]
<command
>
464 <em>git submodule
</em> [--quiet] sync [--recursive] [--] [
<path
>…​]
465 <em>git submodule
</em> [--quiet] absorbgitdirs [--] [
<path
>…​]
</pre>
470 <h2 id=
"_description">DESCRIPTION
</h2>
471 <div class=
"sectionbody">
472 <div class=
"paragraph">
473 <p>Inspects, updates and manages submodules.
</p>
475 <div class=
"paragraph">
476 <p>For more information about submodules, see
<a href=
"gitsubmodules.html">gitsubmodules(
7)
</a>.
</p>
481 <h2 id=
"_commands">COMMANDS
</h2>
482 <div class=
"sectionbody">
483 <div class=
"paragraph">
484 <p>With no arguments, shows the status of existing submodules. Several
485 subcommands are available to perform operations on the submodules.
</p>
489 <dt class=
"hdlist1">add [-b
<branch
>] [-f|--force] [--name
<name
>] [--reference
<repository
>] [--ref-format
<format
>] [--depth
<depth
>] [--]
<repository
> [
<path
>]
</dt>
491 <p>Add the given repository as a submodule at the given path
492 to the changeset to be committed next to the current
493 project: the current project is termed the
"superproject".
</p>
494 <div class=
"paragraph">
495 <p><repository
> is the URL of the new submodule
’s origin repository.
496 This may be either an absolute URL, or (if it begins with ./
497 or ../), the location relative to the superproject
’s default remote
498 repository (Please note that to specify a repository
<em>foo.git
</em>
499 which is located right next to a superproject
<em>bar.git
</em>, you
’ll
500 have to use
<code>..
</code><code>/foo.git
</code> instead of .
<code>/foo.git
</code> - as one might expect
501 when following the rules for relative URLs - because the evaluation
502 of relative URLs in Git is identical to that of relative directories).
</p>
504 <div class=
"paragraph">
505 <p>The default remote is the remote of the remote-tracking branch
506 of the current branch. If no such remote-tracking branch exists or
507 the HEAD is detached,
"origin" is assumed to be the default remote.
508 If the superproject doesn
’t have a default remote configured
509 the superproject is its own authoritative upstream and the current
510 working directory is used instead.
</p>
512 <div class=
"paragraph">
513 <p>The optional argument
<path
> is the relative location for the cloned
514 submodule to exist in the superproject. If
<path
> is not given, the
515 canonical part of the source repository is used (
"repo" for
516 "/path/to/repo.git" and
"foo" for
"host.xz:foo/.git"). If
<path
>
517 exists and is already a valid Git repository, then it is staged
518 for commit without cloning. The
<path
> is also used as the submodule
’s
519 logical name in its configuration entries unless
<code>--name
</code> is used
520 to specify a logical name.
</p>
522 <div class=
"paragraph">
523 <p>The given URL is recorded into .
<code>gitmodules
</code> for use by subsequent users
524 cloning the superproject. If the URL is given relative to the
525 superproject
’s repository, the presumption is the superproject and
526 submodule repositories will be kept together in the same relative
527 location, and only the superproject
’s URL needs to be provided.
528 git-submodule will correctly locate the submodule using the relative
529 URL in .
<code>gitmodules
</code>.
</p>
531 <div class=
"paragraph">
532 <p>If
<code>--ref-format
</code> <em><format
></em> is specified, the ref storage format of newly
533 cloned submodules will be set accordingly.
</p>
536 <dt class=
"hdlist1">status [--cached] [--recursive] [--] [
<path
>…​]
</dt>
538 <p>Show the status of the submodules. This will print the SHA-
1 of the
539 currently checked out commit for each submodule, along with the
540 submodule path and the output of
<em>git describe
</em> for the
541 SHA-
1. Each SHA-
1 will possibly be prefixed with
<code>-
</code> if the submodule is
542 not initialized,
<code>+
</code> if the currently checked out submodule commit
543 does not match the SHA-
1 found in the index of the containing
544 repository and
<code>U
</code> if the submodule has merge conflicts.
</p>
545 <div class=
"paragraph">
546 <p>If
<code>--cached
</code> is specified, this command will instead print the SHA-
1
547 recorded in the superproject for each submodule.
</p>
549 <div class=
"paragraph">
550 <p>If
<code>--recursive
</code> is specified, this command will recurse into nested
551 submodules, and show their status as well.
</p>
553 <div class=
"paragraph">
554 <p>If you are only interested in changes of the currently initialized
555 submodules with respect to the commit recorded in the index or the HEAD,
556 <a href=
"git-status.html">git-status(
1)
</a> and
<a href=
"git-diff.html">git-diff(
1)
</a> will provide that information
557 too (and can also report changes to a submodule
’s work tree).
</p>
560 <dt class=
"hdlist1">init [--] [
<path
>…​]
</dt>
562 <p>Initialize the submodules recorded in the index (which were
563 added and committed elsewhere) by setting
<code>submodule.$name.url
</code>
564 in .
<code>git/config
</code>, using the same setting from .
<code>gitmodules
</code> as
565 a template. If the URL is relative, it will be resolved using
566 the default remote. If there is no default remote, the current
567 repository will be assumed to be upstream.
</p>
568 <div class=
"paragraph">
569 <p>Optional
<path
> arguments limit which submodules will be initialized.
570 If no path is specified and submodule.active has been configured, submodules
571 configured to be active will be initialized, otherwise all submodules are
574 <div class=
"paragraph">
575 <p>It will also copy the value of
<code>submodule.$name.update
</code>, if present in
576 the .
<code>gitmodules
</code> file, to .
<code>git/config
</code>, but (
1) this command does not
577 alter existing information in .
<code>git/config
</code>, and (
2)
<code>submodule.$name.update
</code>
578 that is set to a custom command is
<strong>not
</strong> copied for security reasons.
</p>
580 <div class=
"paragraph">
581 <p>You can then customize the submodule clone URLs in .
<code>git/config
</code>
582 for your local setup and proceed to
<code>git
</code> <code>submodule
</code> <code>update
</code>;
583 you can also just use
<code>git
</code> <code>submodule
</code> <code>update
</code> <code>--init
</code> without
584 the explicit
<em>init
</em> step if you do not intend to customize
585 any submodule locations.
</p>
587 <div class=
"paragraph">
588 <p>See the add subcommand for the definition of default remote.
</p>
591 <dt class=
"hdlist1">deinit [-f|--force] (--all|[--]
<path
>…​)
</dt>
593 <p>Unregister the given submodules, i.e. remove the whole
594 <code>submodule.$name
</code> section from .git/config together with their work
595 tree. Further calls to
<code>git
</code> <code>submodule
</code> <code>update
</code>,
<code>git
</code> <code>submodule
</code> <code>foreach
</code>
596 and
<code>git
</code> <code>submodule
</code> <code>sync
</code> will skip any unregistered submodules until
597 they are initialized again, so use this command if you don
’t want to
598 have a local checkout of the submodule in your working tree anymore.
</p>
599 <div class=
"paragraph">
600 <p>When the command is run without pathspec, it errors out,
601 instead of deinit-ing everything, to prevent mistakes.
</p>
603 <div class=
"paragraph">
604 <p>If
<code>--force
</code> is specified, the submodule
’s working tree will
605 be removed even if it contains local modifications.
</p>
607 <div class=
"paragraph">
608 <p>If you really want to remove a submodule from the repository and commit
609 that use
<a href=
"git-rm.html">git-rm(
1)
</a> instead. See
<a href=
"gitsubmodules.html">gitsubmodules(
7)
</a> for removal
613 <dt class=
"hdlist1">update [--init] [--remote] [-N|--no-fetch] [--[no-]recommend-shallow] [-f|--force] [--checkout|--rebase|--merge] [--reference
<repository
>] [--ref-format
<format
>] [--depth
<depth
>] [--recursive] [--jobs
<n
>] [--[no-]single-branch] [--filter
<filter-spec
>] [--] [
<path
>…​]
</dt>
615 <div class=
"openblock">
616 <div class=
"content">
617 <div class=
"paragraph">
618 <p>Update the registered submodules to match what the superproject
619 expects by cloning missing submodules, fetching missing commits
620 in submodules and updating the working tree of
621 the submodules. The
"updating" can be done in several ways depending
622 on command line options and the value of
<code>submodule.
</code><em><name
></em><code>.update
</code>
623 configuration variable. The command line option takes precedence over
624 the configuration variable. If neither is given, a
<em>checkout
</em> is performed.
625 (note: what is in .
<code>gitmodules
</code> file is irrelevant at this point;
626 see
<code>git
</code> <code>submodule
</code> <code>init
</code> above for how .
<code>gitmodules
</code> is used).
627 The
<em>update
</em> procedures supported both from the command line as well as
628 through the
<code>submodule.
</code><em><name
></em><code>.update
</code> configuration are:
</p>
632 <dt class=
"hdlist1">checkout
</dt>
634 <p>the commit recorded in the superproject will be
635 checked out in the submodule on a detached HEAD.
</p>
636 <div class=
"paragraph">
637 <p>If
<code>--force
</code> is specified, the submodule will be checked out (using
638 <code>git
</code> <code>checkout
</code> <code>--force
</code>), even if the commit specified
639 in the index of the containing repository already matches the commit
640 checked out in the submodule.
</p>
643 <dt class=
"hdlist1">rebase
</dt>
645 <p>the current branch of the submodule will be rebased
646 onto the commit recorded in the superproject.
</p>
648 <dt class=
"hdlist1">merge
</dt>
650 <p>the commit recorded in the superproject will be merged
651 into the current branch in the submodule.
</p>
655 <div class=
"paragraph">
656 <p>The following update procedures have additional limitations:
</p>
660 <dt class=
"hdlist1">custom command
</dt>
662 <p>mechanism for running arbitrary commands with the
663 commit ID as an argument. Specifically, if the
664 <code>submodule.
</code><em><name
></em><code>.update
</code> configuration variable is set to
665 !custom
<code>command
</code>, the object name of the commit recorded in the
666 superproject for the submodule is appended to the
<code>custom
</code> <code>command
</code>
667 string and executed. Note that this mechanism is not supported in
668 the .
<code>gitmodules
</code> file or on the command line.
</p>
670 <dt class=
"hdlist1">none
</dt>
672 <p>the submodule is not updated. This update procedure is not
673 allowed on the command line.
</p>
677 <div class=
"paragraph">
678 <p>If the submodule is not yet initialized, and you just want to use the
679 setting as stored in .
<code>gitmodules
</code>, you can automatically initialize the
680 submodule with the
<code>--init
</code> option.
</p>
682 <div class=
"paragraph">
683 <p>If
<code>--recursive
</code> is specified, this command will recurse into the
684 registered submodules, and update any nested submodules within.
</p>
686 <div class=
"paragraph">
687 <p>If
<code>--ref-format
</code> <em><format
></em> is specified, the ref storage format of newly
688 cloned submodules will be set accordingly.
</p>
690 <div class=
"paragraph">
691 <p>If
<code>--filter
</code> <em><filter-spec
></em> is specified, the given partial clone filter will be
692 applied to the submodule. See
<a href=
"git-rev-list.html">git-rev-list(
1)
</a> for details on filter
698 <dt class=
"hdlist1">set-branch (-b|--branch)
<branch
> [--]
<path
></dt>
699 <dt class=
"hdlist1">set-branch (-d|--default) [--]
<path
></dt>
701 <p>Sets the default remote tracking branch for the submodule. The
702 <code>--branch
</code> option allows the remote branch to be specified. The
703 <code>--default
</code> option removes the submodule.
<name
>.branch configuration
704 key, which causes the tracking branch to default to the remote
<em>HEAD
</em>.
</p>
706 <dt class=
"hdlist1">set-url [--]
<path
> <newurl
></dt>
708 <p>Sets the URL of the specified submodule to
<newurl
>. Then, it will
709 automatically synchronize the submodule
’s new remote URL
712 <dt class=
"hdlist1">summary [--cached|--files] [(-n|--summary-limit)
<n
>] [commit] [--] [
<path
>…​]
</dt>
714 <p>Show commit summary between the given commit (defaults to HEAD) and
715 working tree/index. For a submodule in question, a series of commits
716 in the submodule between the given super project commit and the
717 index or working tree (switched by
<code>--cached
</code>) are shown. If the option
718 <code>--files
</code> is given, show the series of commits in the submodule between
719 the index of the super project and the working tree of the submodule
720 (this option doesn
’t allow to use the
<code>--cached
</code> option or to provide an
721 explicit commit).
</p>
722 <div class=
"paragraph">
723 <p>Using the
<code>--submodule=log
</code> option with
<a href=
"git-diff.html">git-diff(
1)
</a> will provide that
727 <dt class=
"hdlist1">foreach [--recursive]
<command
></dt>
729 <p>Evaluates an arbitrary shell command in each checked out submodule.
730 The command has access to the variables $name, $sm_path, $displaypath,
732 $name is the name of the relevant submodule section in .
<code>gitmodules
</code>,
733 $sm_path is the path of the submodule as recorded in the immediate
734 superproject, $displaypath contains the relative path from the
735 current working directory to the submodules root directory,
736 $sha1 is the commit as recorded in the immediate
737 superproject, and $toplevel is the absolute path to the top-level
738 of the immediate superproject.
739 Note that to avoid conflicts with
<em>$PATH
</em> on Windows, the
<em>$path
</em>
740 variable is now a deprecated synonym of
<em>$sm_path
</em> variable.
741 Any submodules defined in the superproject but not checked out are
742 ignored by this command. Unless given
<code>--quiet
</code>, foreach prints the name
743 of each submodule before evaluating the command.
744 If
<code>--recursive
</code> is given, submodules are traversed recursively (i.e.
745 the given shell command is evaluated in nested submodules as well).
746 A non-zero return from the command in any submodule causes
747 the processing to terminate. This can be overridden by adding
<em>|| :
</em>
748 to the end of the command.
</p>
749 <div class=
"paragraph">
750 <p>As an example, the command below will show the path and currently
751 checked out commit for each submodule:
</p>
753 <div class=
"listingblock">
754 <div class=
"content">
755 <pre>git submodule foreach 'echo $sm_path `git rev-parse HEAD`'
</pre>
759 <dt class=
"hdlist1">sync [--recursive] [--] [
<path
>…​]
</dt>
761 <p>Synchronizes submodules' remote URL configuration setting
762 to the value specified in .
<code>gitmodules
</code>. It will only affect those
763 submodules which already have a URL entry in .git/config (that is the
764 case when they are initialized or freshly added). This is useful when
765 submodule URLs change upstream and you need to update your local
766 repositories accordingly.
</p>
767 <div class=
"paragraph">
768 <p><code>git
</code> <code>submodule
</code> <code>sync
</code> synchronizes all submodules while
769 <code>git
</code> <code>submodule
</code> <code>sync
</code> <code>--
</code> <code>A
</code> synchronizes submodule
"A" only.
</p>
771 <div class=
"paragraph">
772 <p>If
<code>--recursive
</code> is specified, this command will recurse into the
773 registered submodules, and sync any nested submodules within.
</p>
776 <dt class=
"hdlist1">absorbgitdirs
</dt>
778 <p>If a git directory of a submodule is inside the submodule,
779 move the git directory of the submodule into its superproject
’s
780 <code>$GIT_DIR/modules
</code> path and then connect the git directory and
781 its working directory by setting the
<code>core.worktree
</code> and adding
782 a .git file pointing to the git directory embedded in the
783 superprojects git directory.
</p>
784 <div class=
"paragraph">
785 <p>A repository that was cloned independently and later added as a submodule or
786 old setups have the submodules git directory inside the submodule instead of
787 embedded into the superprojects git directory.
</p>
789 <div class=
"paragraph">
790 <p>This command is recursive by default.
</p>
798 <h2 id=
"_options">OPTIONS
</h2>
799 <div class=
"sectionbody">
802 <dt class=
"hdlist1">-q
</dt>
803 <dt class=
"hdlist1">--quiet
</dt>
805 <p>Only print error messages.
</p>
807 <dt class=
"hdlist1">--progress
</dt>
809 <p>This option is only valid for add and update commands.
810 Progress status is reported on the standard error stream
811 by default when it is attached to a terminal, unless -q
812 is specified. This flag forces progress status even if the
813 standard error stream is not directed to a terminal.
</p>
815 <dt class=
"hdlist1">--all
</dt>
817 <p>This option is only valid for the deinit command. Unregister all
818 submodules in the working tree.
</p>
820 <dt class=
"hdlist1">-b
<branch
></dt>
821 <dt class=
"hdlist1">--branch
<branch
></dt>
823 <p>Branch of repository to add as submodule.
824 The name of the branch is recorded as
<code>submodule.
</code><em><name
></em><code>.branch
</code> in
825 .
<code>gitmodules
</code> for
<code>update
</code> <code>--remote
</code>. A special value of . is used to
826 indicate that the name of the branch in the submodule should be the
827 same name as the current branch in the current repository. If the
828 option is not specified, it defaults to the remote
<em>HEAD
</em>.
</p>
830 <dt class=
"hdlist1">-f
</dt>
831 <dt class=
"hdlist1">--force
</dt>
833 <p>This option is only valid for add, deinit and update commands.
834 When running add, allow adding an otherwise ignored submodule path.
835 When running deinit the submodule working trees will be removed even
836 if they contain local changes.
837 When running update (only effective with the checkout procedure),
838 throw away local changes in submodules when switching to a
839 different commit; and always run a checkout operation in the
840 submodule, even if the commit listed in the index of the
841 containing repository matches the commit checked out in the
844 <dt class=
"hdlist1">--cached
</dt>
846 <p>This option is only valid for status and summary commands. These
847 commands typically use the commit found in the submodule HEAD, but
848 with this option, the commit stored in the index is used instead.
</p>
850 <dt class=
"hdlist1">--files
</dt>
852 <p>This option is only valid for the summary command. This command
853 compares the commit in the index with that in the submodule HEAD
854 when this option is used.
</p>
856 <dt class=
"hdlist1">-n
</dt>
857 <dt class=
"hdlist1">--summary-limit
</dt>
859 <p>This option is only valid for the summary command.
860 Limit the summary size (number of commits shown in total).
861 Giving
0 will disable the summary; a negative number means unlimited
862 (the default). This limit only applies to modified submodules. The
863 size is always limited to
1 for added/deleted/typechanged submodules.
</p>
865 <dt class=
"hdlist1">--remote
</dt>
867 <p>This option is only valid for the update command. Instead of using
868 the superproject
’s recorded SHA-
1 to update the submodule, use the
869 status of the submodule
’s remote-tracking branch. The remote used
870 is branch
’s remote (
<code>branch.
</code><em><name
></em><code>.remote
</code>), defaulting to
<code>origin
</code>.
871 The remote branch used defaults to the remote
<code>HEAD
</code>, but the branch
872 name may be overridden by setting the
<code>submodule.
</code><em><name
></em><code>.branch
</code>
873 option in either .
<code>gitmodules
</code> or .
<code>git/config
</code> (with .
<code>git/config
</code>
874 taking precedence).
</p>
875 <div class=
"paragraph">
876 <p>This works for any of the supported update procedures (
<code>--checkout
</code>,
877 <code>--rebase
</code>, etc.). The only change is the source of the target SHA-
1.
878 For example,
<code>submodule
</code> <code>update
</code> <code>--remote
</code> <code>--merge
</code> will merge upstream
879 submodule changes into the submodules, while
<code>submodule
</code> <code>update
</code>
880 <code>--merge
</code> will merge superproject gitlink changes into the submodules.
</p>
882 <div class=
"paragraph">
883 <p>In order to ensure a current tracking branch state,
<code>update
</code> <code>--remote
</code>
884 fetches the submodule
’s remote repository before calculating the
885 SHA-
1. If you don
’t want to fetch, you should use
<code>submodule
</code> <code>update
</code>
886 <code>--remote
</code> <code>--no-fetch
</code>.
</p>
888 <div class=
"paragraph">
889 <p>Use this option to integrate changes from the upstream subproject with
890 your submodule
’s current HEAD. Alternatively, you can run
<code>git
</code> <code>pull
</code>
891 from the submodule, which is equivalent except for the remote branch
892 name:
<code>update
</code> <code>--remote
</code> uses the default upstream repository and
893 <code>submodule.
</code><em><name
></em><code>.branch
</code>, while
<code>git
</code> <code>pull
</code> uses the submodule
’s
894 <code>branch.
</code><em><name
></em><code>.merge
</code>. Prefer
<code>submodule.
</code><em><name
></em><code>.branch
</code> if you want
895 to distribute the default upstream branch with the superproject and
896 <code>branch.
</code><em><name
></em><code>.merge
</code> if you want a more native feel while working in
897 the submodule itself.
</p>
900 <dt class=
"hdlist1">-N
</dt>
901 <dt class=
"hdlist1">--no-fetch
</dt>
903 <p>This option is only valid for the update command.
904 Don
’t fetch new objects from the remote site.
</p>
906 <dt class=
"hdlist1">--checkout
</dt>
908 <p>This option is only valid for the update command.
909 Checkout the commit recorded in the superproject on a detached HEAD
910 in the submodule. This is the default behavior, the main use of
911 this option is to override
<code>submodule.$name.update
</code> when set to
912 a value other than
<code>checkout
</code>.
913 If the key
<code>submodule.$name.update
</code> is either not explicitly set or
914 set to
<code>checkout
</code>, this option is implicit.
</p>
916 <dt class=
"hdlist1">--merge
</dt>
918 <p>This option is only valid for the update command.
919 Merge the commit recorded in the superproject into the current branch
920 of the submodule. If this option is given, the submodule
’s HEAD will
921 not be detached. If a merge failure prevents this process, you will
922 have to resolve the resulting conflicts within the submodule with the
923 usual conflict resolution tools.
924 If the key
<code>submodule.$name.update
</code> is set to
<code>merge
</code>, this option is
927 <dt class=
"hdlist1">--rebase
</dt>
929 <p>This option is only valid for the update command.
930 Rebase the current branch onto the commit recorded in the
931 superproject. If this option is given, the submodule
’s HEAD will not
932 be detached. If a merge failure prevents this process, you will have
933 to resolve these failures with
<a href=
"git-rebase.html">git-rebase(
1)
</a>.
934 If the key
<code>submodule.$name.update
</code> is set to
<code>rebase
</code>, this option is
937 <dt class=
"hdlist1">--init
</dt>
939 <p>This option is only valid for the update command.
940 Initialize all submodules for which
"git submodule init" has not been
941 called so far before updating.
</p>
943 <dt class=
"hdlist1">--name
</dt>
945 <p>This option is only valid for the add command. It sets the submodule
’s
946 name to the given string instead of defaulting to its path. The name
947 must be valid as a directory name and may not end with a
<em>/
</em>.
</p>
949 <dt class=
"hdlist1">--reference
<repository
></dt>
951 <p>This option is only valid for add and update commands. These
952 commands sometimes need to clone a remote repository. In this case,
953 this option will be passed to the
<a href=
"git-clone.html">git-clone(
1)
</a> command.
</p>
954 <div class=
"paragraph">
955 <p><strong>NOTE
</strong>: Do
<strong>not
</strong> use this option unless you have read the note
956 for
<a href=
"git-clone.html">git-clone(
1)
</a>'s
<code>--reference
</code>,
<code>--shared
</code>, and
<code>--dissociate
</code>
957 options carefully.
</p>
960 <dt class=
"hdlist1">--dissociate
</dt>
962 <p>This option is only valid for add and update commands. These
963 commands sometimes need to clone a remote repository. In this case,
964 this option will be passed to the
<a href=
"git-clone.html">git-clone(
1)
</a> command.
</p>
965 <div class=
"paragraph">
966 <p><strong>NOTE
</strong>: see the NOTE for the
<code>--reference
</code> option.
</p>
969 <dt class=
"hdlist1">--recursive
</dt>
971 <p>This option is only valid for foreach, update, status and sync commands.
972 Traverse submodules recursively. The operation is performed not
973 only in the submodules of the current repo, but also
974 in any nested submodules inside those submodules (and so on).
</p>
976 <dt class=
"hdlist1">--depth
</dt>
978 <p>This option is valid for add and update commands. Create a
<em>shallow
</em>
979 clone with a history truncated to the specified number of revisions.
980 See
<a href=
"git-clone.html">git-clone(
1)
</a></p>
982 <dt class=
"hdlist1">--[no-]recommend-shallow
</dt>
984 <p>This option is only valid for the update command.
985 The initial clone of a submodule will use the recommended
986 <code>submodule.
</code><em><name
></em><code>.shallow
</code> as provided by the .
<code>gitmodules
</code> file
987 by default. To ignore the suggestions use
<code>--no-recommend-shallow
</code>.
</p>
989 <dt class=
"hdlist1">-j
<n
></dt>
990 <dt class=
"hdlist1">--jobs
<n
></dt>
992 <p>This option is only valid for the update command.
993 Clone new submodules in parallel with as many jobs.
994 Defaults to the
<code>submodule.fetchJobs
</code> option.
</p>
996 <dt class=
"hdlist1">--[no-]single-branch
</dt>
998 <p>This option is only valid for the update command.
999 Clone only one branch during update: HEAD or one specified by --branch.
</p>
1001 <dt class=
"hdlist1"><path
>…​</dt>
1003 <p>Paths to submodule(s). When specified this will restrict the command
1004 to only operate on the submodules found at the specified paths.
1005 (This argument is required with add).
</p>
1012 <h2 id=
"_files">FILES
</h2>
1013 <div class=
"sectionbody">
1014 <div class=
"paragraph">
1015 <p>When initializing submodules, a .
<code>gitmodules
</code> file in the top-level directory
1016 of the containing repository is used to find the url of each submodule.
1017 This file should be formatted in the same way as
<code>$GIT_DIR/config
</code>. The key
1018 to each submodule url is
"submodule.$name.url". See
<a href=
"gitmodules.html">gitmodules(
5)
</a>
1024 <h2 id=
"_see_also">SEE ALSO
</h2>
1025 <div class=
"sectionbody">
1026 <div class=
"paragraph">
1027 <p><a href=
"gitsubmodules.html">gitsubmodules(
7)
</a>,
<a href=
"gitmodules.html">gitmodules(
5)
</a>.
</p>
1032 <h2 id=
"_git">GIT
</h2>
1033 <div class=
"sectionbody">
1034 <div class=
"paragraph">
1035 <p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p>
1041 <div id=
"footer-text">
1042 Last updated
2024-
08-
16 10:
28:
44 -
0700