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-update-index(
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-update-index(
1) Manual Page
</h1>
444 <h2 id=
"_name">NAME
</h2>
445 <div class=
"sectionbody">
446 <p>git-update-index - Register file contents in the working tree to the index
</p>
451 <h2 id=
"_synopsis">SYNOPSIS
</h2>
452 <div class=
"sectionbody">
453 <div class=
"verseblock">
454 <pre class=
"content"><em>git update-index
</em>
455 [--add] [--remove | --force-remove] [--replace]
456 [--refresh] [-q] [--unmerged] [--ignore-missing]
457 [(--cacheinfo
<mode
>,
<object
>,
<file
>)
…​]
459 [--[no-]assume-unchanged]
460 [--[no-]skip-worktree]
461 [--[no-]ignore-skip-worktree-entries]
462 [--[no-]fsmonitor-valid]
463 [--ignore-submodules]
465 [--[no-|test-|force-]untracked-cache]
467 [--really-refresh] [--unresolve] [--again | -g]
468 [--info-only] [--index-info]
469 [-z] [--stdin] [--index-version
<n
>]
470 [--show-index-version]
472 [--] [
<file
>…​]
</pre>
477 <h2 id=
"_description">DESCRIPTION
</h2>
478 <div class=
"sectionbody">
479 <div class=
"paragraph">
480 <p>Modifies the index. Each file mentioned is updated into the index and
481 any
<em>unmerged
</em> or
<em>needs updating
</em> state is cleared.
</p>
483 <div class=
"paragraph">
484 <p>See also
<a href=
"git-add.html">git-add(
1)
</a> for a more user-friendly way to do some of
485 the most common operations on the index.
</p>
487 <div class=
"paragraph">
488 <p>The way
<em>git update-index
</em> handles files it is told about can be modified
489 using the various options:
</p>
494 <h2 id=
"_options">OPTIONS
</h2>
495 <div class=
"sectionbody">
498 <dt class=
"hdlist1">--add
</dt>
500 <p>If a specified file isn
’t in the index already then it
’s
502 Default behaviour is to ignore new files.
</p>
504 <dt class=
"hdlist1">--remove
</dt>
506 <p>If a specified file is in the index but is missing then it
’s
508 Default behavior is to ignore removed files.
</p>
510 <dt class=
"hdlist1">--refresh
</dt>
512 <p>Looks at the current index and checks to see if merges or
513 updates are needed by checking stat() information.
</p>
515 <dt class=
"hdlist1">-q
</dt>
517 <p> Quiet. If --refresh finds that the index needs an update, the
518 default behavior is to error out. This option makes
519 <em>git update-index
</em> continue anyway.
</p>
521 <dt class=
"hdlist1">--ignore-submodules
</dt>
523 <p>Do not try to update submodules. This option is only respected
524 when passed before --refresh.
</p>
526 <dt class=
"hdlist1">--unmerged
</dt>
528 <p> If --refresh finds unmerged changes in the index, the default
529 behavior is to error out. This option makes
<em>git update-index
</em>
532 <dt class=
"hdlist1">--ignore-missing
</dt>
534 <p>Ignores missing files during a --refresh
</p>
536 <dt class=
"hdlist1">--cacheinfo
<mode
>,
<object
>,
<path
></dt>
537 <dt class=
"hdlist1">--cacheinfo
<mode
> <object
> <path
></dt>
539 <p>Directly insert the specified info into the index. For
540 backward compatibility, you can also give these three
541 arguments as three separate parameters, but new users are
542 encouraged to use a single-parameter form.
</p>
544 <dt class=
"hdlist1">--index-info
</dt>
546 <p>Read index information from stdin.
</p>
548 <dt class=
"hdlist1">--chmod=(+|-)x
</dt>
550 <p>Set the execute permissions on the updated files.
</p>
552 <dt class=
"hdlist1">--[no-]assume-unchanged
</dt>
554 <p>When this flag is specified, the object names recorded
555 for the paths are not updated. Instead, this option
556 sets/unsets the
"assume unchanged" bit for the
557 paths. When the
"assume unchanged" bit is on, the user
558 promises not to change the file and allows Git to assume
559 that the working tree file matches what is recorded in
560 the index. If you want to change the working tree file,
561 you need to unset the bit to tell Git. This is
562 sometimes helpful when working with a big project on a
563 filesystem that has a very slow lstat(
2) system call
565 <div class=
"paragraph">
566 <p>Git will fail (gracefully) in case it needs to modify this file
567 in the index e.g. when merging in a commit;
568 thus, in case the assumed-untracked file is changed upstream,
569 you will need to handle the situation manually.
</p>
572 <dt class=
"hdlist1">--really-refresh
</dt>
574 <p>Like
<code>--refresh
</code>, but checks stat information unconditionally,
575 without regard to the
"assume unchanged" setting.
</p>
577 <dt class=
"hdlist1">--[no-]skip-worktree
</dt>
579 <p>When one of these flags is specified, the object names recorded
580 for the paths are not updated. Instead, these options
581 set and unset the
"skip-worktree" bit for the paths. See
582 section
"Skip-worktree bit" below for more information.
</p>
584 <dt class=
"hdlist1">--[no-]ignore-skip-worktree-entries
</dt>
586 <p>Do not remove skip-worktree (AKA
"index-only") entries even when
587 the
<code>--remove
</code> option was specified.
</p>
589 <dt class=
"hdlist1">--[no-]fsmonitor-valid
</dt>
591 <p>When one of these flags is specified, the object names recorded
592 for the paths are not updated. Instead, these options
593 set and unset the
"fsmonitor valid" bit for the paths. See
594 section
"File System Monitor" below for more information.
</p>
596 <dt class=
"hdlist1">-g
</dt>
597 <dt class=
"hdlist1">--again
</dt>
599 <p>Runs
<em>git update-index
</em> itself on the paths whose index
600 entries are different from those of the
<code>HEAD
</code> commit.
</p>
602 <dt class=
"hdlist1">--unresolve
</dt>
604 <p>Restores the
<em>unmerged
</em> or
<em>needs updating
</em> state of a
605 file during a merge if it was cleared by accident.
</p>
607 <dt class=
"hdlist1">--info-only
</dt>
609 <p>Do not create objects in the object database for all
610 <file
> arguments that follow this flag; just insert
611 their object IDs into the index.
</p>
613 <dt class=
"hdlist1">--force-remove
</dt>
615 <p>Remove the file from the index even when the working directory
616 still has such a file. (Implies --remove.)
</p>
618 <dt class=
"hdlist1">--replace
</dt>
620 <p>By default, when a file
<code>path
</code> exists in the index,
621 <em>git update-index
</em> refuses an attempt to add
<code>path/file
</code>.
622 Similarly if a file
<code>path/file
</code> exists, a file
<code>path
</code>
623 cannot be added. With --replace flag, existing entries
624 that conflict with the entry being added are
625 automatically removed with warning messages.
</p>
627 <dt class=
"hdlist1">--stdin
</dt>
629 <p>Instead of taking a list of paths from the command line,
630 read a list of paths from the standard input. Paths are
631 separated by LF (i.e. one path per line) by default.
</p>
633 <dt class=
"hdlist1">--verbose
</dt>
635 <p>Report what is being added and removed from the index.
</p>
637 <dt class=
"hdlist1">--index-version
<n
></dt>
639 <p>Write the resulting index out in the named on-disk format version.
640 Supported versions are
2,
3, and
4. The current default version is
2
641 or
3, depending on whether extra features are used, such as
642 <code>git add -N
</code>. With
<code>--verbose
</code>, also report the version the index
643 file uses before and after this command.
</p>
644 <div class=
"paragraph">
645 <p>Version
4 performs a simple pathname compression that reduces index
646 size by
30%-
50% on large repositories, which results in faster load
647 time. Git supports it since version
1.8.0, released in October
2012,
648 and support for it was added to libgit2 in
2016 and to JGit in
2020.
649 Older versions of this manual page called it
"relatively young", but
650 it should be considered mature technology these days.
</p>
653 <dt class=
"hdlist1">--show-index-version
</dt>
655 <p>Report the index format version used by the on-disk index file.
656 See
<code>--index-version
</code> above.
</p>
658 <dt class=
"hdlist1">-z
</dt>
660 <p>Only meaningful with
<code>--stdin
</code> or
<code>--index-info
</code>; paths are
661 separated with NUL character instead of LF.
</p>
663 <dt class=
"hdlist1">--split-index
</dt>
664 <dt class=
"hdlist1">--no-split-index
</dt>
666 <p>Enable or disable split index mode. If split-index mode is
667 already enabled and
<code>--split-index
</code> is given again, all
668 changes in $GIT_DIR/index are pushed back to the shared index
670 <div class=
"paragraph">
671 <p>These options take effect whatever the value of the
<code>core.splitIndex
</code>
672 configuration variable (see
<a href=
"git-config.html">git-config(
1)
</a>). But a warning is
673 emitted when the change goes against the configured value, as the
674 configured value will take effect next time the index is read and this
675 will remove the intended effect of the option.
</p>
678 <dt class=
"hdlist1">--untracked-cache
</dt>
679 <dt class=
"hdlist1">--no-untracked-cache
</dt>
681 <p>Enable or disable untracked cache feature. Please use
682 <code>--test-untracked-cache
</code> before enabling it.
</p>
683 <div class=
"paragraph">
684 <p>These options take effect whatever the value of the
<code>core.untrackedCache
</code>
685 configuration variable (see
<a href=
"git-config.html">git-config(
1)
</a>). But a warning is
686 emitted when the change goes against the configured value, as the
687 configured value will take effect next time the index is read and this
688 will remove the intended effect of the option.
</p>
691 <dt class=
"hdlist1">--test-untracked-cache
</dt>
693 <p>Only perform tests on the working directory to make sure
694 untracked cache can be used. You have to manually enable
695 untracked cache using
<code>--untracked-cache
</code> or
696 <code>--force-untracked-cache
</code> or the
<code>core.untrackedCache
</code>
697 configuration variable afterwards if you really want to use
698 it. If a test fails the exit code is
1 and a message
699 explains what is not working as needed, otherwise the exit
700 code is
0 and OK is printed.
</p>
702 <dt class=
"hdlist1">--force-untracked-cache
</dt>
704 <p>Same as
<code>--untracked-cache
</code>. Provided for backwards
705 compatibility with older versions of Git where
706 <code>--untracked-cache
</code> used to imply
<code>--test-untracked-cache
</code> but
707 this option would enable the extension unconditionally.
</p>
709 <dt class=
"hdlist1">--fsmonitor
</dt>
710 <dt class=
"hdlist1">--no-fsmonitor
</dt>
712 <p>Enable or disable files system monitor feature. These options
713 take effect whatever the value of the
<code>core.fsmonitor
</code>
714 configuration variable (see
<a href=
"git-config.html">git-config(
1)
</a>). But a warning
715 is emitted when the change goes against the configured value, as
716 the configured value will take effect next time the index is
717 read and this will remove the intended effect of the option.
</p>
719 <dt class=
"hdlist1">--
</dt>
721 <p>Do not interpret any more arguments as options.
</p>
723 <dt class=
"hdlist1"><file
></dt>
726 Note that files beginning with
<em>.
</em> are discarded. This includes
727 <code>./file
</code> and
<code>dir/./file
</code>. If you don
’t want this, then use
729 The same applies to directories ending
<em>/
</em> and paths with
<em>//
</em></p>
736 <h2 id=
"_using_refresh">USING --REFRESH
</h2>
737 <div class=
"sectionbody">
738 <div class=
"paragraph">
739 <p><code>--refresh
</code> does not calculate a new sha1 file or bring the index
740 up to date for mode/content changes. But what it
<strong>does
</strong> do is to
741 "re-match" the stat information of a file with the index, so that you
742 can refresh the index for a file that hasn
’t been changed but where
743 the stat entry is out of date.
</p>
745 <div class=
"paragraph">
746 <p>For example, you
’d want to do this after doing a
<em>git read-tree
</em>, to link
747 up the stat index details with the proper files.
</p>
752 <h2 id=
"_using_cacheinfo_or_info_only">USING --CACHEINFO OR --INFO-ONLY
</h2>
753 <div class=
"sectionbody">
754 <div class=
"paragraph">
755 <p><code>--cacheinfo
</code> is used to register a file that is not in the
756 current working directory. This is useful for minimum-checkout
759 <div class=
"paragraph">
760 <p>To pretend you have a file at path with mode and sha1, say:
</p>
762 <div class=
"listingblock">
763 <div class=
"content">
764 <pre>$ git update-index --add --cacheinfo
<mode
>,
<sha1
>,
<path
></pre>
767 <div class=
"paragraph">
768 <p><code>--info-only
</code> is used to register files without placing them in the object
769 database. This is useful for status-only repositories.
</p>
771 <div class=
"paragraph">
772 <p>Both
<code>--cacheinfo
</code> and
<code>--info-only
</code> behave similarly: the index is updated
773 but the object database isn
’t.
<code>--cacheinfo
</code> is useful when the object is
774 in the database but the file isn
’t available locally.
<code>--info-only
</code> is
775 useful when the file is available, but you do not wish to update the
781 <h2 id=
"_using_index_info">USING --INDEX-INFO
</h2>
782 <div class=
"sectionbody">
783 <div class=
"paragraph">
784 <p><code>--index-info
</code> is a more powerful mechanism that lets you feed
785 multiple entry definitions from the standard input, and designed
786 specifically for scripts. It can take inputs of three formats:
</p>
788 <div class=
"olist arabic">
791 <p>mode SP type SP sha1 TAB path
</p>
792 <div class=
"paragraph">
793 <p>This format is to stuff
<code>git ls-tree
</code> output into the index.
</p>
797 <p>mode SP sha1 SP stage TAB path
</p>
798 <div class=
"paragraph">
799 <p>This format is to put higher order stages into the
800 index file and matches
<em>git ls-files --stage
</em> output.
</p>
804 <p>mode SP sha1 TAB path
</p>
805 <div class=
"paragraph">
806 <p>This format is no longer produced by any Git command, but is
807 and will continue to be supported by
<code>update-index --index-info
</code>.
</p>
812 <div class=
"paragraph">
813 <p>To place a higher stage entry to the index, the path should
814 first be removed by feeding a mode=
0 entry for the path, and
815 then feeding necessary input lines in the third format.
</p>
817 <div class=
"paragraph">
818 <p>For example, starting with this index:
</p>
820 <div class=
"listingblock">
821 <div class=
"content">
822 <pre>$ git ls-files -s
823 100644 8a1218a1024a212bb3db30becd860315f9f3ac52
0 frotz
</pre>
826 <div class=
"paragraph">
827 <p>you can feed the following input to
<code>--index-info
</code>:
</p>
829 <div class=
"listingblock">
830 <div class=
"content">
831 <pre>$ git update-index --index-info
832 0 0000000000000000000000000000000000000000 frotz
833 100644 8a1218a1024a212bb3db30becd860315f9f3ac52
1 frotz
834 100755 8a1218a1024a212bb3db30becd860315f9f3ac52
2 frotz
</pre>
837 <div class=
"paragraph">
838 <p>The first line of the input feeds
0 as the mode to remove the
839 path; the SHA-
1 does not matter as long as it is well formatted.
840 Then the second and third line feeds stage
1 and stage
2 entries
841 for that path. After the above, we would end up with this:
</p>
843 <div class=
"listingblock">
844 <div class=
"content">
845 <pre>$ git ls-files -s
846 100644 8a1218a1024a212bb3db30becd860315f9f3ac52
1 frotz
847 100755 8a1218a1024a212bb3db30becd860315f9f3ac52
2 frotz
</pre>
853 <h2 id=
"_using_assume_unchanged_bit">USING
“ASSUME UNCHANGED
” BIT
</h2>
854 <div class=
"sectionbody">
855 <div class=
"paragraph">
856 <p>Many operations in Git depend on your filesystem to have an
857 efficient
<code>lstat(
2)
</code> implementation, so that
<code>st_mtime
</code>
858 information for working tree files can be cheaply checked to see
859 if the file contents have changed from the version recorded in
860 the index file. Unfortunately, some filesystems have
861 inefficient
<code>lstat(
2)
</code>. If your filesystem is one of them, you
862 can set
"assume unchanged" bit to paths you have not changed to
863 cause Git not to do this check. Note that setting this bit on a
864 path does not mean Git will check the contents of the file to
865 see if it has changed
 — it makes Git to omit any checking and
866 assume it has
<strong>not
</strong> changed. When you make changes to working
867 tree files, you have to explicitly tell Git about it by dropping
868 "assume unchanged" bit, either before or after you modify them.
</p>
870 <div class=
"paragraph">
871 <p>In order to set
"assume unchanged" bit, use
<code>--assume-unchanged
</code>
872 option. To unset, use
<code>--no-assume-unchanged
</code>. To see which files
873 have the
"assume unchanged" bit set, use
<code>git ls-files -v
</code>
874 (see
<a href=
"git-ls-files.html">git-ls-files(
1)
</a>).
</p>
876 <div class=
"paragraph">
877 <p>The command looks at
<code>core.ignorestat
</code> configuration variable. When
878 this is true, paths updated with
<code>git update-index paths...
</code> and
879 paths updated with other Git commands that update both index and
880 working tree (e.g.
<em>git apply --index
</em>,
<em>git checkout-index -u
</em>,
881 and
<em>git read-tree -u
</em>) are automatically marked as
"assume
882 unchanged". Note that
"assume unchanged" bit is
<strong>not
</strong> set if
883 <code>git update-index --refresh
</code> finds the working tree file matches
884 the index (use
<code>git update-index --really-refresh
</code> if you want
885 to mark them as
"assume unchanged").
</p>
887 <div class=
"paragraph">
888 <p>Sometimes users confuse the assume-unchanged bit with the
889 skip-worktree bit. See the final paragraph in the
"Skip-worktree bit"
890 section below for an explanation of the differences.
</p>
895 <h2 id=
"_examples">EXAMPLES
</h2>
896 <div class=
"sectionbody">
897 <div class=
"paragraph">
898 <p>To update and refresh only the files already checked out:
</p>
900 <div class=
"listingblock">
901 <div class=
"content">
902 <pre>$ git checkout-index -n -f -a
&& git update-index --ignore-missing --refresh
</pre>
907 <dt class=
"hdlist1">On an inefficient filesystem with
<code>core.ignorestat
</code> set
</dt>
909 <div class=
"listingblock">
910 <div class=
"content">
911 <pre>$ git update-index --really-refresh
<b class=
"conum">(
1)
</b>
912 $ git update-index --no-assume-unchanged foo.c
<b class=
"conum">(
2)
</b>
913 $ git diff --name-only
<b class=
"conum">(
3)
</b>
915 $ git diff --name-only
<b class=
"conum">(
4)
</b>
917 $ git update-index foo.c
<b class=
"conum">(
5)
</b>
918 $ git diff --name-only
<b class=
"conum">(
6)
</b>
920 $ git diff --name-only
<b class=
"conum">(
7)
</b>
921 $ git update-index --no-assume-unchanged foo.c
<b class=
"conum">(
8)
</b>
922 $ git diff --name-only
<b class=
"conum">(
9)
</b>
926 <div class=
"colist arabic">
929 <p>forces lstat(
2) to set
"assume unchanged" bits for paths that match index.
</p>
932 <p>mark the path to be edited.
</p>
935 <p>this does lstat(
2) and finds index matches the path.
</p>
938 <p>this does lstat(
2) and finds index does
<strong>not
</strong> match the path.
</p>
941 <p>registering the new version to index sets
"assume unchanged" bit.
</p>
944 <p>and it is assumed unchanged.
</p>
947 <p>even after you edit it.
</p>
950 <p>you can tell about the change after the fact.
</p>
953 <p>now it checks with lstat(
2) and finds it has been changed.
</p>
963 <h2 id=
"_skip_worktree_bit">SKIP-WORKTREE BIT
</h2>
964 <div class=
"sectionbody">
965 <div class=
"paragraph">
966 <p>Skip-worktree bit can be defined in one (long) sentence: Tell git to
967 avoid writing the file to the working directory when reasonably
968 possible, and treat the file as unchanged when it is not
969 present in the working directory.
</p>
971 <div class=
"paragraph">
972 <p>Note that not all git commands will pay attention to this bit, and
973 some only partially support it.
</p>
975 <div class=
"paragraph">
976 <p>The update-index flags and the read-tree capabilities relating to the
977 skip-worktree bit predated the introduction of the
978 <a href=
"git-sparse-checkout.html">git-sparse-checkout(
1)
</a> command, which provides a much easier
979 way to configure and handle the skip-worktree bits. If you want to
980 reduce your working tree to only deal with a subset of the files in
981 the repository, we strongly encourage the use of
982 <a href=
"git-sparse-checkout.html">git-sparse-checkout(
1)
</a> in preference to the low-level
983 update-index and read-tree primitives.
</p>
985 <div class=
"paragraph">
986 <p>The primary purpose of the skip-worktree bit is to enable sparse
987 checkouts, i.e. to have working directories with only a subset of
988 paths present. When the skip-worktree bit is set, Git commands (such
989 as
<code>switch
</code>,
<code>pull
</code>,
<code>merge
</code>) will avoid writing these files.
990 However, these commands will sometimes write these files anyway in
991 important cases such as conflicts during a merge or rebase. Git
992 commands will also avoid treating the lack of such files as an
993 intentional deletion; for example
<code>git add -u
</code> will not stage a
994 deletion for these files and
<code>git commit -a
</code> will not make a commit
995 deleting them either.
</p>
997 <div class=
"paragraph">
998 <p>Although this bit looks similar to assume-unchanged bit, its goal is
999 different. The assume-unchanged bit is for leaving the file in the
1000 working tree but having Git omit checking it for changes and presuming
1001 that the file has not been changed (though if it can determine without
1002 stat
’ing the file that it has changed, it is free to record the
1003 changes). skip-worktree tells Git to ignore the absence of the file,
1004 avoid updating it when possible with commands that normally update
1005 much of the working directory (e.g.
<code>checkout
</code>,
<code>switch
</code>,
<code>pull
</code>,
1006 etc.), and not have its absence be recorded in commits. Note that in
1007 sparse checkouts (setup by
<code>git sparse-checkout
</code> or by configuring
1008 core.sparseCheckout to true), if a file is marked as skip-worktree in
1009 the index but is found in the working tree, Git will clear the
1010 skip-worktree bit for that file.
</p>
1015 <h2 id=
"_split_index">SPLIT INDEX
</h2>
1016 <div class=
"sectionbody">
1017 <div class=
"paragraph">
1018 <p>This mode is designed for repositories with very large indexes, and
1019 aims at reducing the time it takes to repeatedly write these indexes.
</p>
1021 <div class=
"paragraph">
1022 <p>In this mode, the index is split into two files, $GIT_DIR/index and
1023 $GIT_DIR/sharedindex.
<SHA-
1>. Changes are accumulated in
1024 $GIT_DIR/index, the split index, while the shared index file contains
1025 all index entries and stays unchanged.
</p>
1027 <div class=
"paragraph">
1028 <p>All changes in the split index are pushed back to the shared index
1029 file when the number of entries in the split index reaches a level
1030 specified by the splitIndex.maxPercentChange config variable (see
1031 <a href=
"git-config.html">git-config(
1)
</a>).
</p>
1033 <div class=
"paragraph">
1034 <p>Each time a new shared index file is created, the old shared index
1035 files are deleted if their modification time is older than what is
1036 specified by the splitIndex.sharedIndexExpire config variable (see
1037 <a href=
"git-config.html">git-config(
1)
</a>).
</p>
1039 <div class=
"paragraph">
1040 <p>To avoid deleting a shared index file that is still used, its
1041 modification time is updated to the current time every time a new split
1042 index based on the shared index file is either created or read from.
</p>
1047 <h2 id=
"_untracked_cache">UNTRACKED CACHE
</h2>
1048 <div class=
"sectionbody">
1049 <div class=
"paragraph">
1050 <p>This cache is meant to speed up commands that involve determining
1051 untracked files such as
<code>git status
</code>.
</p>
1053 <div class=
"paragraph">
1054 <p>This feature works by recording the mtime of the working tree
1055 directories and then omitting reading directories and stat calls
1056 against files in those directories whose mtime hasn
’t changed. For
1057 this to work the underlying operating system and file system must
1058 change the
<code>st_mtime
</code> field of directories if files in the directory
1059 are added, modified or deleted.
</p>
1061 <div class=
"paragraph">
1062 <p>You can test whether the filesystem supports that with the
1063 <code>--test-untracked-cache
</code> option. The
<code>--untracked-cache
</code> option used
1064 to implicitly perform that test in older versions of Git, but that
’s
1065 no longer the case.
</p>
1067 <div class=
"paragraph">
1068 <p>If you want to enable (or disable) this feature, it is easier to use
1069 the
<code>core.untrackedCache
</code> configuration variable (see
1070 <a href=
"git-config.html">git-config(
1)
</a>) than using the
<code>--untracked-cache
</code> option to
1071 <code>git update-index
</code> in each repository, especially if you want to do so
1072 across all repositories you use, because you can set the configuration
1073 variable to
<code>true
</code> (or
<code>false
</code>) in your
<code>$HOME/.gitconfig
</code> just once
1074 and have it affect all repositories you touch.
</p>
1076 <div class=
"paragraph">
1077 <p>When the
<code>core.untrackedCache
</code> configuration variable is changed, the
1078 untracked cache is added to or removed from the index the next time a
1079 command reads the index; while when
<code>--[no-|force-]untracked-cache
</code>
1080 are used, the untracked cache is immediately added to or removed from
1083 <div class=
"paragraph">
1084 <p>Before
2.17, the untracked cache had a bug where replacing a directory
1085 with a symlink to another directory could cause it to incorrectly show
1086 files tracked by git as untracked. See the
"status: add a failing test
1087 showing a core.untrackedCache bug" commit to git.git. A workaround for
1088 that is (and this might work for other undiscovered bugs in the
1091 <div class=
"listingblock">
1092 <div class=
"content">
1093 <pre>$ git -c core.untrackedCache=false status
</pre>
1096 <div class=
"paragraph">
1097 <p>This bug has also been shown to affect non-symlink cases of replacing
1098 a directory with a file when it comes to the internal structures of
1099 the untracked cache, but no case has been reported where this resulted in
1100 wrong
"git status" output.
</p>
1102 <div class=
"paragraph">
1103 <p>There are also cases where existing indexes written by git versions
1104 before
2.17 will reference directories that don
’t exist anymore,
1105 potentially causing many
"could not open directory" warnings to be
1106 printed on
"git status". These are new warnings for existing issues
1107 that were previously silently discarded.
</p>
1109 <div class=
"paragraph">
1110 <p>As with the bug described above the solution is to one-off do a
"git
1111 status" run with
<code>core.untrackedCache=false
</code> to flush out the leftover
1117 <h2 id=
"_file_system_monitor">FILE SYSTEM MONITOR
</h2>
1118 <div class=
"sectionbody">
1119 <div class=
"paragraph">
1120 <p>This feature is intended to speed up git operations for repos that have
1121 large working directories.
</p>
1123 <div class=
"paragraph">
1124 <p>It enables git to work together with a file system monitor (see
1125 <a href=
"git-fsmonitor--daemon.html">git-fsmonitor
--daemon(
1)
</a>
1127 "fsmonitor-watchman" section of
<a href=
"githooks.html">githooks(
5)
</a>) that can
1128 inform it as to what files have been modified. This enables git to avoid
1129 having to lstat() every file to find modified files.
</p>
1131 <div class=
"paragraph">
1132 <p>When used in conjunction with the untracked cache, it can further improve
1133 performance by avoiding the cost of scanning the entire working directory
1134 looking for new files.
</p>
1136 <div class=
"paragraph">
1137 <p>If you want to enable (or disable) this feature, it is easier to use
1138 the
<code>core.fsmonitor
</code> configuration variable (see
1139 <a href=
"git-config.html">git-config(
1)
</a>) than using the
<code>--fsmonitor
</code> option to
<code>git
1140 update-index
</code> in each repository, especially if you want to do so
1141 across all repositories you use, because you can set the configuration
1142 variable in your
<code>$HOME/.gitconfig
</code> just once and have it affect all
1143 repositories you touch.
</p>
1145 <div class=
"paragraph">
1146 <p>When the
<code>core.fsmonitor
</code> configuration variable is changed, the
1147 file system monitor is added to or removed from the index the next time
1148 a command reads the index. When
<code>--[no-]fsmonitor
</code> are used, the file
1149 system monitor is immediately added to or removed from the index.
</p>
1154 <h2 id=
"_configuration">CONFIGURATION
</h2>
1155 <div class=
"sectionbody">
1156 <div class=
"paragraph">
1157 <p>The command honors
<code>core.filemode
</code> configuration variable. If
1158 your repository is on a filesystem whose executable bits are
1159 unreliable, this should be set to
<em>false
</em> (see
<a href=
"git-config.html">git-config(
1)
</a>).
1160 This causes the command to ignore differences in file modes recorded
1161 in the index and the file mode on the filesystem if they differ only on
1162 executable bit. On such an unfortunate filesystem, you may
1163 need to use
<em>git update-index --chmod=
</em>.
</p>
1165 <div class=
"paragraph">
1166 <p>Quite similarly, if
<code>core.symlinks
</code> configuration variable is set
1167 to
<em>false
</em> (see
<a href=
"git-config.html">git-config(
1)
</a>), symbolic links are checked out
1168 as plain files, and this command does not modify a recorded file mode
1169 from symbolic link to regular file.
</p>
1171 <div class=
"paragraph">
1172 <p>The command looks at
<code>core.ignorestat
</code> configuration variable. See
1173 <em>Using
"assume unchanged" bit
</em> section above.
</p>
1175 <div class=
"paragraph">
1176 <p>The command also looks at
<code>core.trustctime
</code> configuration variable.
1177 It can be useful when the inode change time is regularly modified by
1178 something outside Git (file system crawlers and backup systems use
1179 ctime for marking files processed) (see
<a href=
"git-config.html">git-config(
1)
</a>).
</p>
1181 <div class=
"paragraph">
1182 <p>The untracked cache extension can be enabled by the
1183 <code>core.untrackedCache
</code> configuration variable (see
1184 <a href=
"git-config.html">git-config(
1)
</a>).
</p>
1189 <h2 id=
"_notes">NOTES
</h2>
1190 <div class=
"sectionbody">
1191 <div class=
"paragraph">
1192 <p>Users often try to use the assume-unchanged and skip-worktree bits
1193 to tell Git to ignore changes to files that are tracked. This does not
1194 work as expected, since Git may still check working tree files against
1195 the index when performing certain operations. In general, Git does not
1196 provide a way to ignore changes to tracked files, so alternate solutions
1197 are recommended.
</p>
1199 <div class=
"paragraph">
1200 <p>For example, if the file you want to change is some sort of config file,
1201 the repository can include a sample config file that can then be copied
1202 into the ignored name and modified. The repository can even include a
1203 script to treat the sample file as a template, modifying and copying it
1209 <h2 id=
"_see_also">SEE ALSO
</h2>
1210 <div class=
"sectionbody">
1211 <div class=
"paragraph">
1212 <p><a href=
"git-config.html">git-config(
1)
</a>,
1213 <a href=
"git-add.html">git-add(
1)
</a>,
1214 <a href=
"git-ls-files.html">git-ls-files(
1)
</a></p>
1219 <h2 id=
"_git">GIT
</h2>
1220 <div class=
"sectionbody">
1221 <div class=
"paragraph">
1222 <p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p>
1228 <div id=
"footer-text">
1229 Last updated
2024-
05-
23 12:
14:
58 -
0700