Autogenerated HTML docs for v2.46.0-39-g891ee
[git-htmldocs.git] / gitrepository-layout.html
blob47ff1005a751f80cc6b1aae3b4229c210b0453a3
1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
3 <head>
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>gitrepository-layout(5)</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"/>
10 <style>
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%}
15 a{background:none}
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}
20 abbr{font-size:.9em}
21 abbr[title]{cursor:help;border-bottom:1px dotted #dddddf;text-decoration:none}
22 dfn{font-style:italic}
23 hr{height:0}
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"}
28 small{font-size:80%}
29 sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
30 sup{top:-.5em}
31 sub{bottom:-.25em}
32 img{border:0}
33 svg:not(:root){overflow:hidden}
34 figure{margin:0}
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}
61 .hide{display:none}
62 img,object,svg{display:inline-block;vertical-align:middle}
63 textarea{height:auto;min-height:50px}
64 select{width:100%}
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}
69 a img{border:0}
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}
74 h1{font-size:2.125em}
75 h2{font-size:1.6875em}
76 h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
77 h4,h5{font-size:1.125em}
78 h6{font-size:1em}
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}
97 h1{font-size:2.75em}
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}
110 .stretch{width:100%}
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}
343 .aqua{color:#00bfbf}
344 .aqua-background{background:#00fafa}
345 .black{color:#000}
346 .black-background{background:#000}
347 .blue{color:#0000bf}
348 .blue-background{background:#0000fa}
349 .fuchsia{color:#bf00bf}
350 .fuchsia-background{background:#fa00fa}
351 .gray{color:#606060}
352 .gray-background{background:#7d7d7d}
353 .green{color:#006000}
354 .green-background{background:#007d00}
355 .lime{color:#00bf00}
356 .lime-background{background:#00fa00}
357 .maroon{color:#600000}
358 .maroon-background{background:#7d0000}
359 .navy{color:#000060}
360 .navy-background{background:#00007d}
361 .olive{color:#606000}
362 .olive-background{background:#7d7d00}
363 .purple{color:#600060}
364 .purple-background{background:#7d007d}
365 .red{color:#bf0000}
366 .red-background{background:#fa0000}
367 .silver{color:#909090}
368 .silver-background{background:#bcbcbc}
369 .teal{color:#006060}
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}
400 html{font-size:80%}
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}
408 svg{max-width:100%}
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}}
434 </style>
435 <style>
436 pre>code {
437 display: inline;
439 </style>
440 </head>
441 <body class="manpage">
442 <div id="header">
443 <h1>gitrepository-layout(5) Manual Page</h1>
444 <h2 id="_name">NAME</h2>
445 <div class="sectionbody">
446 <p>gitrepository-layout - Git Repository Layout</p>
447 </div>
448 </div>
449 <div id="content">
450 <div class="sect1">
451 <h2 id="_synopsis">SYNOPSIS</h2>
452 <div class="sectionbody">
453 <div class="paragraph">
454 <p>$GIT_DIR/*</p>
455 </div>
456 </div>
457 </div>
458 <div class="sect1">
459 <h2 id="_description">DESCRIPTION</h2>
460 <div class="sectionbody">
461 <div class="paragraph">
462 <p>A Git repository comes in two different flavours:</p>
463 </div>
464 <div class="ulist">
465 <ul>
466 <li>
467 <p>a <code>.git</code> directory at the root of the working tree;</p>
468 </li>
469 <li>
470 <p>a <code>&lt;project&gt;.git</code> directory that is a <em>bare</em> repository
471 (i.e. without its own working tree), that is typically used for
472 exchanging histories with others by pushing into it and fetching
473 from it.</p>
474 </li>
475 </ul>
476 </div>
477 <div class="paragraph">
478 <p><strong>Note</strong>: Also you can have a plain text file <code>.git</code> at the root of
479 your working tree, containing <code>gitdir: &lt;path&gt;</code> to point at the real
480 directory that has the repository.
481 This mechanism is called a <em>gitfile</em> and is usually managed via the
482 <code>git submodule</code> and <code>git worktree</code> commands. It is often used for
483 a working tree of a submodule checkout, to allow you in the
484 containing superproject to <code>git checkout</code> a branch that does not
485 have the submodule. The <code>checkout</code> has to remove the entire
486 submodule working tree, without losing the submodule repository.</p>
487 </div>
488 <div class="paragraph">
489 <p>These things may exist in a Git repository.</p>
490 </div>
491 <div class="dlist">
492 <dl>
493 <dt class="hdlist1">objects</dt>
494 <dd>
495 <p>Object store associated with this repository. Usually
496 an object store is self sufficient (i.e. all the objects
497 that are referred to by an object found in it are also
498 found in it), but there are a few ways to violate it.</p>
499 <div class="olist arabic">
500 <ol class="arabic">
501 <li>
502 <p>You could have an incomplete but locally usable repository
503 by creating a shallow clone. See <a href="git-clone.html">git-clone(1)</a>.</p>
504 </li>
505 <li>
506 <p>You could be using the <code>objects/info/alternates</code> or
507 <code>$GIT_ALTERNATE_OBJECT_DIRECTORIES</code> mechanisms to <em>borrow</em>
508 objects from other object stores. A repository with this kind
509 of incomplete object store is not suitable to be published for
510 use with dumb transports but otherwise is OK as long as
511 <code>objects/info/alternates</code> points at the object stores it
512 borrows from.</p>
513 <div class="paragraph">
514 <p>This directory is ignored if $GIT_COMMON_DIR is set and
515 "$GIT_COMMON_DIR/objects" will be used instead.</p>
516 </div>
517 </li>
518 </ol>
519 </div>
520 </dd>
521 <dt class="hdlist1">objects/[0-9a-f][0-9a-f]</dt>
522 <dd>
523 <p>A newly created object is stored in its own file.
524 The objects are splayed over 256 subdirectories using
525 the first two characters of the sha1 object name to
526 keep the number of directory entries in <code>objects</code>
527 itself to a manageable number. Objects found
528 here are often called <em>unpacked</em> (or <em>loose</em>) objects.</p>
529 </dd>
530 <dt class="hdlist1">objects/pack</dt>
531 <dd>
532 <p>Packs (files that store many objects in compressed form,
533 along with index files to allow them to be randomly
534 accessed) are found in this directory.</p>
535 </dd>
536 <dt class="hdlist1">objects/info</dt>
537 <dd>
538 <p>Additional information about the object store is
539 recorded in this directory.</p>
540 </dd>
541 <dt class="hdlist1">objects/info/packs</dt>
542 <dd>
543 <p>This file is to help dumb transports discover what packs
544 are available in this object store. Whenever a pack is
545 added or removed, <code>git update-server-info</code> should be run
546 to keep this file up to date if the repository is
547 published for dumb transports. <em>git repack</em> does this
548 by default.</p>
549 </dd>
550 <dt class="hdlist1">objects/info/alternates</dt>
551 <dd>
552 <p>This file records paths to alternate object stores that
553 this object store borrows objects from, one pathname per
554 line. Note that not only native Git tools use it locally,
555 but the HTTP fetcher also tries to use it remotely; this
556 will usually work if you have relative paths (relative
557 to the object database, not to the repository!) in your
558 alternates file, but it will not work if you use absolute
559 paths unless the absolute path in filesystem and web URL
560 is the same. See also <code>objects/info/http-alternates</code>.</p>
561 </dd>
562 <dt class="hdlist1">objects/info/http-alternates</dt>
563 <dd>
564 <p>This file records URLs to alternate object stores that
565 this object store borrows objects from, to be used when
566 the repository is fetched over HTTP.</p>
567 </dd>
568 <dt class="hdlist1">refs</dt>
569 <dd>
570 <p>References are stored in subdirectories of this
571 directory. The <em>git prune</em> command knows to preserve
572 objects reachable from refs found in this directory and
573 its subdirectories.
574 This directory is ignored (except refs/bisect,
575 refs/rewritten and refs/worktree) if $GIT_COMMON_DIR is
576 set and "$GIT_COMMON_DIR/refs" will be used instead.</p>
577 </dd>
578 <dt class="hdlist1">refs/heads/<code>name</code></dt>
579 <dd>
580 <p>records tip-of-the-tree commit objects of branch <code>name</code></p>
581 </dd>
582 <dt class="hdlist1">refs/tags/<code>name</code></dt>
583 <dd>
584 <p>records any object name (not necessarily a commit
585 object, or a tag object that points at a commit object).</p>
586 </dd>
587 <dt class="hdlist1">refs/remotes/<code>name</code></dt>
588 <dd>
589 <p>records tip-of-the-tree commit objects of branches copied
590 from a remote repository.</p>
591 </dd>
592 <dt class="hdlist1">refs/replace/<code>&lt;obj-sha1&gt;</code></dt>
593 <dd>
594 <p>records the SHA-1 of the object that replaces <code>&lt;obj-sha1&gt;</code>.
595 This is similar to info/grafts and is internally used and
596 maintained by <a href="git-replace.html">git-replace(1)</a>. Such refs can be exchanged
597 between repositories while grafts are not.</p>
598 </dd>
599 <dt class="hdlist1">packed-refs</dt>
600 <dd>
601 <p>records the same information as refs/heads/, refs/tags/,
602 and friends record in a more efficient way. See
603 <a href="git-pack-refs.html">git-pack-refs(1)</a>. This file is ignored if $GIT_COMMON_DIR
604 is set and "$GIT_COMMON_DIR/packed-refs" will be used instead.</p>
605 </dd>
606 <dt class="hdlist1">HEAD</dt>
607 <dd>
608 <p>A symref (see glossary) to the <code>refs/heads/</code> namespace
609 describing the currently active branch. It does not mean
610 much if the repository is not associated with any working tree
611 (i.e. a <em>bare</em> repository), but a valid Git repository
612 <strong>must</strong> have the HEAD file; some porcelains may use it to
613 guess the designated "default" branch of the repository
614 (usually <em>master</em>). It is legal if the named branch
615 <em>name</em> does not (yet) exist. In some legacy setups, it is
616 a symbolic link instead of a symref that points at the current
617 branch.</p>
618 <div class="paragraph">
619 <p>HEAD can also record a specific commit directly, instead of
620 being a symref to point at the current branch. Such a state
621 is often called <em>detached HEAD.</em> See <a href="git-checkout.html">git-checkout(1)</a>
622 for details.</p>
623 </div>
624 </dd>
625 <dt class="hdlist1">config</dt>
626 <dd>
627 <p>Repository specific configuration file. This file is ignored
628 if $GIT_COMMON_DIR is set and "$GIT_COMMON_DIR/config" will be
629 used instead.</p>
630 </dd>
631 <dt class="hdlist1">config.worktree</dt>
632 <dd>
633 <p>Working directory specific configuration file for the main
634 working directory in multiple working directory setup (see
635 <a href="git-worktree.html">git-worktree(1)</a>).</p>
636 </dd>
637 <dt class="hdlist1">branches</dt>
638 <dd>
639 <p>A slightly deprecated way to store shorthands to be used
640 to specify a URL to <em>git fetch</em>, <em>git pull</em> and <em>git push</em>.
641 A file can be stored as <code>branches/&lt;name&gt;</code> and then
642 <em>name</em> can be given to these commands in place of
643 <em>repository</em> argument. See the REMOTES section in
644 <a href="git-fetch.html">git-fetch(1)</a> for details. This mechanism is legacy
645 and not likely to be found in modern repositories. This
646 directory is ignored if $GIT_COMMON_DIR is set and
647 "$GIT_COMMON_DIR/branches" will be used instead.</p>
648 </dd>
649 <dt class="hdlist1">hooks</dt>
650 <dd>
651 <p>Hooks are customization scripts used by various Git
652 commands. A handful of sample hooks are installed when
653 <em>git init</em> is run, but all of them are disabled by
654 default. To enable, the <code>.sample</code> suffix has to be
655 removed from the filename by renaming.
656 Read <a href="githooks.html">githooks(5)</a> for more details about
657 each hook. This directory is ignored if $GIT_COMMON_DIR is set
658 and "$GIT_COMMON_DIR/hooks" will be used instead.</p>
659 </dd>
660 <dt class="hdlist1">common</dt>
661 <dd>
662 <p>When multiple working trees are used, most of files in
663 $GIT_DIR are per-worktree with a few known exceptions. All
664 files under <em>common</em> however will be shared between all
665 working trees.</p>
666 </dd>
667 <dt class="hdlist1">index</dt>
668 <dd>
669 <p>The current index file for the repository. It is
670 usually not found in a bare repository.</p>
671 </dd>
672 <dt class="hdlist1">sharedindex.&lt;SHA-1&gt;</dt>
673 <dd>
674 <p>The shared index part, to be referenced by $GIT_DIR/index and
675 other temporary index files. Only valid in split index mode.</p>
676 </dd>
677 <dt class="hdlist1">info</dt>
678 <dd>
679 <p>Additional information about the repository is recorded
680 in this directory. This directory is ignored if $GIT_COMMON_DIR
681 is set and "$GIT_COMMON_DIR/info" will be used instead.</p>
682 </dd>
683 <dt class="hdlist1">info/refs</dt>
684 <dd>
685 <p>This file helps dumb transports discover what refs are
686 available in this repository. If the repository is
687 published for dumb transports, this file should be
688 regenerated by <em>git update-server-info</em> every time a tag
689 or branch is created or modified. This is normally done
690 from the <code>hooks/update</code> hook, which is run by the
691 <em>git-receive-pack</em> command when you <em>git push</em> into the
692 repository.</p>
693 </dd>
694 <dt class="hdlist1">info/grafts</dt>
695 <dd>
696 <p>This file records fake commit ancestry information, to
697 pretend the set of parents a commit has is different
698 from how the commit was actually created. One record
699 per line describes a commit and its fake parents by
700 listing their 40-byte hexadecimal object names separated
701 by a space and terminated by a newline.</p>
702 <div class="paragraph">
703 <p>Note that the grafts mechanism is outdated and can lead to problems
704 transferring objects between repositories; see <a href="git-replace.html">git-replace(1)</a>
705 for a more flexible and robust system to do the same thing.</p>
706 </div>
707 </dd>
708 <dt class="hdlist1">info/exclude</dt>
709 <dd>
710 <p>This file, by convention among Porcelains, stores the
711 exclude pattern list. <code>.gitignore</code> is the per-directory
712 ignore file. <em>git status</em>, <em>git add</em>, <em>git rm</em> and
713 <em>git clean</em> look at it but the core Git commands do not look
714 at it. See also: <a href="gitignore.html">gitignore(5)</a>.</p>
715 </dd>
716 <dt class="hdlist1">info/attributes</dt>
717 <dd>
718 <p>Defines which attributes to assign to a path, similar to per-directory
719 <code>.gitattributes</code> files. See also: <a href="gitattributes.html">gitattributes(5)</a>.</p>
720 </dd>
721 <dt class="hdlist1">info/sparse-checkout</dt>
722 <dd>
723 <p>This file stores sparse checkout patterns.
724 See also: <a href="git-read-tree.html">git-read-tree(1)</a>.</p>
725 </dd>
726 <dt class="hdlist1">remotes</dt>
727 <dd>
728 <p>Stores shorthands for URL and default refnames for use
729 when interacting with remote repositories via <em>git fetch</em>,
730 <em>git pull</em> and <em>git push</em> commands. See the REMOTES section
731 in <a href="git-fetch.html">git-fetch(1)</a> for details. This mechanism is legacy
732 and not likely to be found in modern repositories. This
733 directory is ignored if $GIT_COMMON_DIR is set and
734 "$GIT_COMMON_DIR/remotes" will be used instead.</p>
735 </dd>
736 <dt class="hdlist1">logs</dt>
737 <dd>
738 <p>Records of changes made to refs are stored in this directory.
739 See <a href="git-update-ref.html">git-update-ref(1)</a> for more information. This
740 directory is ignored (except logs/HEAD) if $GIT_COMMON_DIR is
741 set and "$GIT_COMMON_DIR/logs" will be used instead.</p>
742 </dd>
743 <dt class="hdlist1">logs/refs/heads/<code>name</code></dt>
744 <dd>
745 <p>Records all changes made to the branch tip named <code>name</code>.</p>
746 </dd>
747 <dt class="hdlist1">logs/refs/tags/<code>name</code></dt>
748 <dd>
749 <p>Records all changes made to the tag named <code>name</code>.</p>
750 </dd>
751 <dt class="hdlist1">shallow</dt>
752 <dd>
753 <p>This is similar to <code>info/grafts</code> but is internally used
754 and maintained by shallow clone mechanism. See <code>--depth</code>
755 option to <a href="git-clone.html">git-clone(1)</a> and <a href="git-fetch.html">git-fetch(1)</a>. This
756 file is ignored if $GIT_COMMON_DIR is set and
757 "$GIT_COMMON_DIR/shallow" will be used instead.</p>
758 </dd>
759 <dt class="hdlist1">commondir</dt>
760 <dd>
761 <p>If this file exists, $GIT_COMMON_DIR (see <a href="git.html">git(1)</a>) will
762 be set to the path specified in this file if it is not
763 explicitly set. If the specified path is relative, it is
764 relative to $GIT_DIR. The repository with commondir is
765 incomplete without the repository pointed by "commondir".</p>
766 </dd>
767 <dt class="hdlist1">modules</dt>
768 <dd>
769 <p>Contains the git-repositories of the submodules.</p>
770 </dd>
771 <dt class="hdlist1">worktrees</dt>
772 <dd>
773 <p>Contains administrative data for linked
774 working trees. Each subdirectory contains the working tree-related
775 part of a linked working tree. This directory is ignored if
776 $GIT_COMMON_DIR is set, in which case
777 "$GIT_COMMON_DIR/worktrees" will be used instead.</p>
778 </dd>
779 <dt class="hdlist1">worktrees/&lt;id&gt;/gitdir</dt>
780 <dd>
781 <p>A text file containing the absolute path back to the .git file
782 that points to here. This is used to check if the linked
783 repository has been manually removed and there is no need to
784 keep this directory any more. The mtime of this file should be
785 updated every time the linked repository is accessed.</p>
786 </dd>
787 <dt class="hdlist1">worktrees/&lt;id&gt;/locked</dt>
788 <dd>
789 <p>If this file exists, the linked working tree may be on a
790 portable device and not available. The presence of this file
791 prevents <code>worktrees/&lt;id&gt;</code> from being pruned either automatically
792 or manually by <code>git worktree prune</code>. The file may contain a string
793 explaining why the repository is locked.</p>
794 </dd>
795 <dt class="hdlist1">worktrees/&lt;id&gt;/config.worktree</dt>
796 <dd>
797 <p>Working directory specific configuration file.</p>
798 </dd>
799 </dl>
800 </div>
801 </div>
802 </div>
803 <div class="sect1">
804 <h2 id="_git_repository_format_versions">Git Repository Format Versions</h2>
805 <div class="sectionbody">
806 <div class="paragraph">
807 <p>Every git repository is marked with a numeric version in the
808 <code>core.repositoryformatversion</code> key of its <code>config</code> file. This version
809 specifies the rules for operating on the on-disk repository data. An
810 implementation of git which does not understand a particular version
811 advertised by an on-disk repository MUST NOT operate on that repository;
812 doing so risks not only producing wrong results, but actually losing
813 data.</p>
814 </div>
815 <div class="paragraph">
816 <p>Because of this rule, version bumps should be kept to an absolute
817 minimum. Instead, we generally prefer these strategies:</p>
818 </div>
819 <div class="ulist">
820 <ul>
821 <li>
822 <p>bumping format version numbers of individual data files (e.g.,
823 index, packfiles, etc). This restricts the incompatibilities only to
824 those files.</p>
825 </li>
826 <li>
827 <p>introducing new data that gracefully degrades when used by older
828 clients (e.g., pack bitmap files are ignored by older clients, which
829 simply do not take advantage of the optimization they provide).</p>
830 </li>
831 </ul>
832 </div>
833 <div class="paragraph">
834 <p>A whole-repository format version bump should only be part of a change
835 that cannot be independently versioned. For instance, if one were to
836 change the reachability rules for objects, or the rules for locking
837 refs, that would require a bump of the repository format version.</p>
838 </div>
839 <div class="paragraph">
840 <p>Note that this applies only to accessing the repository&#8217;s disk contents
841 directly. An older client which understands only format <code>0</code> may still
842 connect via <code>git://</code> to a repository using format <code>1</code>, as long as the
843 server process understands format <code>1</code>.</p>
844 </div>
845 <div class="paragraph">
846 <p>The preferred strategy for rolling out a version bump (whether whole
847 repository or for a single file) is to teach git to read the new format,
848 and allow writing the new format with a config switch or command line
849 option (for experimentation or for those who do not care about backwards
850 compatibility with older gits). Then after a long period to allow the
851 reading capability to become common, we may switch to writing the new
852 format by default.</p>
853 </div>
854 <div class="paragraph">
855 <p>The currently defined format versions are:</p>
856 </div>
857 <div class="sect2">
858 <h3 id="_version_0">Version <code>0</code></h3>
859 <div class="paragraph">
860 <p>This is the format defined by the initial version of git, including but
861 not limited to the format of the repository directory, the repository
862 configuration file, and the object and ref storage. Specifying the
863 complete behavior of git is beyond the scope of this document.</p>
864 </div>
865 </div>
866 <div class="sect2">
867 <h3 id="_version_1">Version <code>1</code></h3>
868 <div class="paragraph">
869 <p>This format is identical to version <code>0</code>, with the following exceptions:</p>
870 </div>
871 <div class="olist arabic">
872 <ol class="arabic">
873 <li>
874 <p>When reading the <code>core.repositoryformatversion</code> variable, a git
875 implementation which supports version 1 MUST also read any
876 configuration keys found in the <code>extensions</code> section of the
877 configuration file.</p>
878 </li>
879 <li>
880 <p>If a version-1 repository specifies any <code>extensions.*</code> keys that
881 the running git has not implemented, the operation MUST NOT
882 proceed. Similarly, if the value of any known key is not understood
883 by the implementation, the operation MUST NOT proceed.</p>
884 </li>
885 </ol>
886 </div>
887 <div class="paragraph">
888 <p>Note that if no extensions are specified in the config file, then
889 <code>core.repositoryformatversion</code> SHOULD be set to <code>0</code> (setting it to <code>1</code>
890 provides no benefit, and makes the repository incompatible with older
891 implementations of git).</p>
892 </div>
893 <div class="paragraph">
894 <p>This document will serve as the master list for extensions. Any
895 implementation wishing to define a new extension should make a note of
896 it here, in order to claim the name.</p>
897 </div>
898 <div class="paragraph">
899 <p>The defined extensions are:</p>
900 </div>
901 <div class="sect3">
902 <h4 id="_noop"><code>noop</code></h4>
903 <div class="paragraph">
904 <p>This extension does not change git&#8217;s behavior at all. It is useful only
905 for testing format-1 compatibility.</p>
906 </div>
907 </div>
908 <div class="sect3">
909 <h4 id="_preciousobjects"><code>preciousObjects</code></h4>
910 <div class="paragraph">
911 <p>When the config key <code>extensions.preciousObjects</code> is set to <code>true</code>,
912 objects in the repository MUST NOT be deleted (e.g., by <code>git-prune</code> or
913 <code>git repack -d</code>).</p>
914 </div>
915 </div>
916 <div class="sect3">
917 <h4 id="_partialclone"><code>partialClone</code></h4>
918 <div class="paragraph">
919 <p>When the config key <code>extensions.partialClone</code> is set, it indicates
920 that the repo was created with a partial clone (or later performed
921 a partial fetch) and that the remote may have omitted sending
922 certain unwanted objects. Such a remote is called a "promisor remote"
923 and it promises that all such omitted objects can be fetched from it
924 in the future.</p>
925 </div>
926 <div class="paragraph">
927 <p>The value of this key is the name of the promisor remote.</p>
928 </div>
929 </div>
930 <div class="sect3">
931 <h4 id="_worktreeconfig"><code>worktreeConfig</code></h4>
932 <div class="paragraph">
933 <p>If set, by default "git config" reads from both "config" and
934 "config.worktree" files from GIT_DIR in that order. In
935 multiple working directory mode, "config" file is shared while
936 "config.worktree" is per-working directory (i.e., it&#8217;s in
937 GIT_COMMON_DIR/worktrees/&lt;id&gt;/config.worktree)</p>
938 </div>
939 </div>
940 <div class="sect3">
941 <h4 id="_refstorage"><code>refStorage</code></h4>
942 <div class="paragraph">
943 <p>Specifies the file format for the ref database. The valid values are
944 <code>files</code> (loose references with a packed-refs file) and <code>reftable</code> (see
945 Documentation/technical/reftable.txt).</p>
946 </div>
947 </div>
948 </div>
949 </div>
950 </div>
951 <div class="sect1">
952 <h2 id="_see_also">SEE ALSO</h2>
953 <div class="sectionbody">
954 <div class="paragraph">
955 <p><a href="git-init.html">git-init(1)</a>,
956 <a href="git-clone.html">git-clone(1)</a>,
957 <a href="git-fetch.html">git-fetch(1)</a>,
958 <a href="git-pack-refs.html">git-pack-refs(1)</a>,
959 <a href="git-gc.html">git-gc(1)</a>,
960 <a href="git-checkout.html">git-checkout(1)</a>,
961 <a href="gitglossary.html">gitglossary(7)</a>,
962 <a href="user-manual.html">The Git User&#8217;s Manual</a></p>
963 </div>
964 </div>
965 </div>
966 <div class="sect1">
967 <h2 id="_git">GIT</h2>
968 <div class="sectionbody">
969 <div class="paragraph">
970 <p>Part of the <a href="git.html">git(1)</a> suite</p>
971 </div>
972 </div>
973 </div>
974 </div>
975 <div id="footer">
976 <div id="footer-text">
977 Last updated 2023-12-20 13:32:13 -0800
978 </div>
979 </div>
980 </body>
981 </html>