Autogenerated HTML docs for v2.48.1-220-gbc204b
[git-htmldocs.git] / gitrepository-layout.html
blob9d3535d991050a2af2bf5ab2a183e0a90ec0233b
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 <em>&lt;project&gt;</em><code>.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:</code> <em>&lt;path&gt;</em> 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</code> <code>submodule</code> and <code>git</code> <code>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</code> <code>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</code> <code>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/<em>&lt;obj-sha1&gt;</em></dt>
593 <dd>
594 <p>records the SHA-1 of the object that replaces <em>&lt;obj-sha1&gt;</em>.
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 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/</code><em>&lt;name&gt;</em> 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 <div class="paragraph">
649 <p>Git will stop reading remotes from this directory in Git 3.0.</p>
650 </div>
651 </dd>
652 <dt class="hdlist1">hooks</dt>
653 <dd>
654 <p>Hooks are customization scripts used by various Git
655 commands. A handful of sample hooks are installed when
656 <em>git init</em> is run, but all of them are disabled by
657 default. To enable, the .<code>sample</code> suffix has to be
658 removed from the filename by renaming.
659 Read <a href="githooks.html">githooks(5)</a> for more details about
660 each hook. This directory is ignored if $GIT_COMMON_DIR is set
661 and "$GIT_COMMON_DIR/hooks" will be used instead.</p>
662 </dd>
663 <dt class="hdlist1">common</dt>
664 <dd>
665 <p>When multiple working trees are used, most of files in
666 $GIT_DIR are per-worktree with a few known exceptions. All
667 files under <em>common</em> however will be shared between all
668 working trees.</p>
669 </dd>
670 <dt class="hdlist1">index</dt>
671 <dd>
672 <p>The current index file for the repository. It is
673 usually not found in a bare repository.</p>
674 </dd>
675 <dt class="hdlist1">sharedindex.&lt;SHA-1&gt;</dt>
676 <dd>
677 <p>The shared index part, to be referenced by $GIT_DIR/index and
678 other temporary index files. Only valid in split index mode.</p>
679 </dd>
680 <dt class="hdlist1">info</dt>
681 <dd>
682 <p>Additional information about the repository is recorded
683 in this directory. This directory is ignored if $GIT_COMMON_DIR
684 is set and "$GIT_COMMON_DIR/info" will be used instead.</p>
685 </dd>
686 <dt class="hdlist1">info/refs</dt>
687 <dd>
688 <p>This file helps dumb transports discover what refs are
689 available in this repository. If the repository is
690 published for dumb transports, this file should be
691 regenerated by <em>git update-server-info</em> every time a tag
692 or branch is created or modified. This is normally done
693 from the <code>hooks/update</code> hook, which is run by the
694 <em>git-receive-pack</em> command when you <em>git push</em> into the
695 repository.</p>
696 </dd>
697 <dt class="hdlist1">info/grafts</dt>
698 <dd>
699 <p>This file records fake commit ancestry information, to
700 pretend the set of parents a commit has is different
701 from how the commit was actually created. One record
702 per line describes a commit and its fake parents by
703 listing their 40-byte hexadecimal object names separated
704 by a space and terminated by a newline.</p>
705 <div class="paragraph">
706 <p>Note that the grafts mechanism is outdated and can lead to problems
707 transferring objects between repositories; see <a href="git-replace.html">git-replace(1)</a>
708 for a more flexible and robust system to do the same thing.</p>
709 </div>
710 </dd>
711 <dt class="hdlist1">info/exclude</dt>
712 <dd>
713 <p>This file, by convention among Porcelains, stores the
714 exclude pattern list. .<code>gitignore</code> is the per-directory
715 ignore file. <em>git status</em>, <em>git add</em>, <em>git rm</em> and
716 <em>git clean</em> look at it but the core Git commands do not look
717 at it. See also: <a href="gitignore.html">gitignore(5)</a>.</p>
718 </dd>
719 <dt class="hdlist1">info/attributes</dt>
720 <dd>
721 <p>Defines which attributes to assign to a path, similar to per-directory
722 .<code>gitattributes</code> files. See also: <a href="gitattributes.html">gitattributes(5)</a>.</p>
723 </dd>
724 <dt class="hdlist1">info/sparse-checkout</dt>
725 <dd>
726 <p>This file stores sparse checkout patterns.
727 See also: <a href="git-read-tree.html">git-read-tree(1)</a>.</p>
728 </dd>
729 <dt class="hdlist1">remotes</dt>
730 <dd>
731 <p>Stores shorthands for URL and default refnames for use
732 when interacting with remote repositories via <em>git fetch</em>,
733 <em>git pull</em> and <em>git push</em> commands. See the REMOTES section
734 in <a href="git-fetch.html">git-fetch(1)</a> for details. This mechanism is legacy
735 and not likely to be found in modern repositories. This
736 directory is ignored if $GIT_COMMON_DIR is set and
737 "$GIT_COMMON_DIR/remotes" will be used instead.</p>
738 <div class="paragraph">
739 <p>Git will stop reading remotes from this directory in Git 3.0.</p>
740 </div>
741 </dd>
742 <dt class="hdlist1">logs</dt>
743 <dd>
744 <p>Records of changes made to refs are stored in this directory.
745 See <a href="git-update-ref.html">git-update-ref(1)</a> for more information. This
746 directory is ignored (except logs/HEAD) if $GIT_COMMON_DIR is
747 set and "$GIT_COMMON_DIR/logs" will be used instead.</p>
748 </dd>
749 <dt class="hdlist1">logs/refs/heads/<code>name</code></dt>
750 <dd>
751 <p>Records all changes made to the branch tip named <code>name</code>.</p>
752 </dd>
753 <dt class="hdlist1">logs/refs/tags/<code>name</code></dt>
754 <dd>
755 <p>Records all changes made to the tag named <code>name</code>.</p>
756 </dd>
757 <dt class="hdlist1">shallow</dt>
758 <dd>
759 <p>This is similar to <code>info/grafts</code> but is internally used
760 and maintained by shallow clone mechanism. See <code>--depth</code>
761 option to <a href="git-clone.html">git-clone(1)</a> and <a href="git-fetch.html">git-fetch(1)</a>. This
762 file is ignored if $GIT_COMMON_DIR is set and
763 "$GIT_COMMON_DIR/shallow" will be used instead.</p>
764 </dd>
765 <dt class="hdlist1">commondir</dt>
766 <dd>
767 <p>If this file exists, $GIT_COMMON_DIR (see <a href="git.html">git(1)</a>) will
768 be set to the path specified in this file if it is not
769 explicitly set. If the specified path is relative, it is
770 relative to $GIT_DIR. The repository with commondir is
771 incomplete without the repository pointed by "commondir".</p>
772 </dd>
773 <dt class="hdlist1">modules</dt>
774 <dd>
775 <p>Contains the git-repositories of the submodules.</p>
776 </dd>
777 <dt class="hdlist1">worktrees</dt>
778 <dd>
779 <p>Contains administrative data for linked
780 working trees. Each subdirectory contains the working tree-related
781 part of a linked working tree. This directory is ignored if
782 $GIT_COMMON_DIR is set, in which case
783 "$GIT_COMMON_DIR/worktrees" will be used instead.</p>
784 </dd>
785 <dt class="hdlist1">worktrees/&lt;id&gt;/gitdir</dt>
786 <dd>
787 <p>A text file containing the absolute path back to the .git file
788 that points to here. This is used to check if the linked
789 repository has been manually removed and there is no need to
790 keep this directory any more. The mtime of this file should be
791 updated every time the linked repository is accessed.</p>
792 </dd>
793 <dt class="hdlist1">worktrees/&lt;id&gt;/locked</dt>
794 <dd>
795 <p>If this file exists, the linked working tree may be on a
796 portable device and not available. The presence of this file
797 prevents <code>worktrees/</code><em>&lt;id&gt;</em> from being pruned either automatically
798 or manually by <code>git</code> <code>worktree</code> <code>prune</code>. The file may contain a string
799 explaining why the repository is locked.</p>
800 </dd>
801 <dt class="hdlist1">worktrees/&lt;id&gt;/config.worktree</dt>
802 <dd>
803 <p>Working directory specific configuration file.</p>
804 </dd>
805 </dl>
806 </div>
807 </div>
808 </div>
809 <div class="sect1">
810 <h2 id="_git_repository_format_versions">Git Repository Format Versions</h2>
811 <div class="sectionbody">
812 <div class="paragraph">
813 <p>Every git repository is marked with a numeric version in the
814 <code>core.repositoryformatversion</code> key of its <code>config</code> file. This version
815 specifies the rules for operating on the on-disk repository data. An
816 implementation of git which does not understand a particular version
817 advertised by an on-disk repository MUST NOT operate on that repository;
818 doing so risks not only producing wrong results, but actually losing
819 data.</p>
820 </div>
821 <div class="paragraph">
822 <p>Because of this rule, version bumps should be kept to an absolute
823 minimum. Instead, we generally prefer these strategies:</p>
824 </div>
825 <div class="ulist">
826 <ul>
827 <li>
828 <p>bumping format version numbers of individual data files (e.g.,
829 index, packfiles, etc). This restricts the incompatibilities only to
830 those files.</p>
831 </li>
832 <li>
833 <p>introducing new data that gracefully degrades when used by older
834 clients (e.g., pack bitmap files are ignored by older clients, which
835 simply do not take advantage of the optimization they provide).</p>
836 </li>
837 </ul>
838 </div>
839 <div class="paragraph">
840 <p>A whole-repository format version bump should only be part of a change
841 that cannot be independently versioned. For instance, if one were to
842 change the reachability rules for objects, or the rules for locking
843 refs, that would require a bump of the repository format version.</p>
844 </div>
845 <div class="paragraph">
846 <p>Note that this applies only to accessing the repository&#8217;s disk contents
847 directly. An older client which understands only format <code>0</code> may still
848 connect via <code>git://</code> to a repository using format <code>1</code>, as long as the
849 server process understands format <code>1</code>.</p>
850 </div>
851 <div class="paragraph">
852 <p>The preferred strategy for rolling out a version bump (whether whole
853 repository or for a single file) is to teach git to read the new format,
854 and allow writing the new format with a config switch or command line
855 option (for experimentation or for those who do not care about backwards
856 compatibility with older gits). Then after a long period to allow the
857 reading capability to become common, we may switch to writing the new
858 format by default.</p>
859 </div>
860 <div class="paragraph">
861 <p>The currently defined format versions are:</p>
862 </div>
863 <div class="sect2">
864 <h3 id="_version_0">Version <code>0</code></h3>
865 <div class="paragraph">
866 <p>This is the format defined by the initial version of git, including but
867 not limited to the format of the repository directory, the repository
868 configuration file, and the object and ref storage. Specifying the
869 complete behavior of git is beyond the scope of this document.</p>
870 </div>
871 </div>
872 <div class="sect2">
873 <h3 id="_version_1">Version <code>1</code></h3>
874 <div class="paragraph">
875 <p>This format is identical to version <code>0</code>, with the following exceptions:</p>
876 </div>
877 <div class="olist arabic">
878 <ol class="arabic">
879 <li>
880 <p>When reading the <code>core.repositoryformatversion</code> variable, a git
881 implementation which supports version 1 MUST also read any
882 configuration keys found in the <code>extensions</code> section of the
883 configuration file.</p>
884 </li>
885 <li>
886 <p>If a version-1 repository specifies any <code>extensions.</code>* keys that
887 the running git has not implemented, the operation MUST NOT
888 proceed. Similarly, if the value of any known key is not understood
889 by the implementation, the operation MUST NOT proceed.</p>
890 </li>
891 </ol>
892 </div>
893 <div class="paragraph">
894 <p>Note that if no extensions are specified in the config file, then
895 <code>core.repositoryformatversion</code> SHOULD be set to <code>0</code> (setting it to <code>1</code>
896 provides no benefit, and makes the repository incompatible with older
897 implementations of git).</p>
898 </div>
899 <div class="paragraph">
900 <p>The defined extensions are given in the <code>extensions.</code>* section of
901 <a href="git-config.html">git-config(1)</a>. Any implementation wishing to define a new
902 extension should make a note of it there, in order to claim the name.</p>
903 </div>
904 </div>
905 </div>
906 </div>
907 <div class="sect1">
908 <h2 id="_see_also">SEE ALSO</h2>
909 <div class="sectionbody">
910 <div class="paragraph">
911 <p><a href="git-init.html">git-init(1)</a>,
912 <a href="git-clone.html">git-clone(1)</a>,
913 <a href="git-config.html">git-config(1)</a>,
914 <a href="git-fetch.html">git-fetch(1)</a>,
915 <a href="git-pack-refs.html">git-pack-refs(1)</a>,
916 <a href="git-gc.html">git-gc(1)</a>,
917 <a href="git-checkout.html">git-checkout(1)</a>,
918 <a href="gitglossary.html">gitglossary(7)</a>,
919 <a href="user-manual.html">The Git User&#8217;s Manual</a></p>
920 </div>
921 </div>
922 </div>
923 <div class="sect1">
924 <h2 id="_git">GIT</h2>
925 <div class="sectionbody">
926 <div class="paragraph">
927 <p>Part of the <a href="git.html">git(1)</a> suite</p>
928 </div>
929 </div>
930 </div>
931 </div>
932 <div id="footer">
933 <div id="footer-text">
934 Last updated 2025-02-03 11:48:31 -0800
935 </div>
936 </div>
937 </body>
938 </html>