2 <html xmlns=
"http://www.w3.org/1999/xhtml" lang=
"en">
4 <meta charset=
"UTF-8"/>
5 <meta http-equiv=
"X-UA-Compatible" content=
"IE=edge"/>
6 <meta name=
"viewport" content=
"width=device-width, initial-scale=1.0"/>
7 <meta name=
"generator" content=
"Asciidoctor 2.0.20"/>
8 <title>git-fsck(
1)
</title>
9 <link rel=
"stylesheet" href=
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"/>
11 /*! Asciidoctor default stylesheet | MIT License | https://asciidoctor.org */
12 /* Uncomment the following line when using as a custom stylesheet */
13 /* @import
"https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700"; */
14 html{font-family:sans-serif;-webkit-text-size-adjust:
100%}
16 a:focus{outline:thin dotted}
17 a:active,a:hover{outline:
0}
18 h1{font-size:
2em;margin:
.67em
0}
19 b,strong{font-weight:bold}
21 abbr[title]{cursor:help;border-bottom:
1px dotted #dddddf;text-decoration:none}
22 dfn{font-style:italic}
24 mark{background:#ff0;color:#
000}
25 code,kbd,pre,samp{font-family:monospace;font-size:
1em}
26 pre{white-space:pre-wrap}
27 q{quotes:
"\201C" "\201D" "\2018" "\2019"}
29 sub,sup{font-size:
75%;line-height:
0;position:relative;vertical-align:baseline}
33 svg:not(:root){overflow:hidden}
35 audio,video{display:inline-block}
36 audio:not([controls]){display:none;height:
0}
37 fieldset{border:
1px solid silver;margin:
0 2px;padding:
.35em
.625em
.75em}
38 legend{border:
0;padding:
0}
39 button,input,select,textarea{font-family:inherit;font-size:
100%;margin:
0}
40 button,input{line-height:normal}
41 button,select{text-transform:none}
42 button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}
43 button[disabled],html input[disabled]{cursor:default}
44 input[type=checkbox],input[type=radio]{padding:
0}
45 button::-moz-focus-inner,input::-moz-focus-inner{border:
0;padding:
0}
46 textarea{overflow:auto;vertical-align:top}
47 table{border-collapse:collapse;border-spacing:
0}
48 *,::before,::after{box-sizing:border-box}
49 html,body{font-size:
100%}
50 body{background:#fff;color:rgba(
0,
0,
0,
.8);padding:
0;margin:
0;font-family:
"Noto Serif",
"DejaVu Serif",serif;line-height:
1;position:relative;cursor:auto;-moz-tab-size:
4;-o-tab-size:
4;tab-size:
4;word-wrap:anywhere;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
51 a:hover{cursor:pointer}
52 img,object,embed{max-width:
100%;height:auto}
53 object,embed{height:
100%}
54 img{-ms-interpolation-mode:bicubic}
55 .left{float:left!important}
56 .right{float:right!important}
57 .text-left{text-align:left!important}
58 .text-right{text-align:right!important}
59 .text-center{text-align:center!important}
60 .text-justify{text-align:justify!important}
62 img,object,svg{display:inline-block;vertical-align:middle}
63 textarea{height:auto;min-height:
50px}
65 .subheader,.admonitionblock td.content
>.title,.audioblock
>.title,.exampleblock
>.title,.imageblock
>.title,.listingblock
>.title,.literalblock
>.title,.stemblock
>.title,.openblock
>.title,.paragraph
>.title,.quoteblock
>.title,table.tableblock
>.title,.verseblock
>.title,.videoblock
>.title,.dlist
>.title,.olist
>.title,.ulist
>.title,.qlist
>.title,.hdlist
>.title{line-height:
1.45;color:#
7a2518;font-weight:
400;margin-top:
0;margin-bottom:
.25em}
66 div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:
0;padding:
0}
67 a{color:#
2156a5;text-decoration:underline;line-height:inherit}
68 a:hover,a:focus{color:#
1d4b8f}
70 p{line-height:
1.6;margin-bottom:
1.25em;text-rendering:optimizeLegibility}
71 p aside{font-size:
.875em;line-height:
1.35;font-style:italic}
72 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-weight:
300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:
1em;margin-bottom:
.5em;line-height:
1.0125em}
73 h1 small,h2 small,h3 small,#toctitle small,.sidebarblock
>.content
>.title small,h4 small,h5 small,h6 small{font-size:
60%;color:#e99b8f;line-height:
0}
75 h2{font-size:
1.6875em}
76 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.375em}
77 h4,h5{font-size:
1.125em}
79 hr{border:solid #dddddf;border-width:
1px
0 0;clear:both;margin:
1.25em
0 1.1875em}
80 em,i{font-style:italic;line-height:inherit}
81 strong,b{font-weight:bold;line-height:inherit}
82 small{font-size:
60%;line-height:inherit}
83 code{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;font-weight:
400;color:rgba(
0,
0,
0,
.9)}
84 ul,ol,dl{line-height:
1.6;margin-bottom:
1.25em;list-style-position:outside;font-family:inherit}
85 ul,ol{margin-left:
1.5em}
86 ul li ul,ul li ol{margin-left:
1.25em;margin-bottom:
0}
87 ul.circle{list-style-type:circle}
88 ul.disc{list-style-type:disc}
89 ul.square{list-style-type:square}
90 ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
91 ol li ul,ol li ol{margin-left:
1.25em;margin-bottom:
0}
92 dl dt{margin-bottom:
.3125em;font-weight:bold}
93 dl dd{margin-bottom:
1.25em}
94 blockquote{margin:
0 0 1.25em;padding:
.5625em
1.25em
0 1.1875em;border-left:
1px solid #ddd}
95 blockquote,blockquote p{line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
96 @media screen and (min-width:
768px){h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2}
98 h2{font-size:
2.3125em}
99 h3,#toctitle,.sidebarblock
>.content
>.title{font-size:
1.6875em}
100 h4{font-size:
1.4375em}}
101 table{background:#fff;margin-bottom:
1.25em;border:
1px solid #dedede;word-wrap:normal}
102 table thead,table tfoot{background:#f7f8f7}
103 table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:
.5em
.625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8);text-align:left}
104 table tr th,table tr td{padding:
.5625em
.625em;font-size:inherit;color:rgba(
0,
0,
0,
.8)}
105 table tr.even,table tr.alt{background:#f8f8f7}
106 table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{line-height:
1.6}
107 h1,h2,h3,#toctitle,.sidebarblock
>.content
>.title,h4,h5,h6{line-height:
1.2;word-spacing:-
.05em}
108 h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock
>.content
>.title strong,h4 strong,h5 strong,h6 strong{font-weight:
400}
109 .center{margin-left:auto;margin-right:auto}
111 .clearfix::before,.clearfix::after,.float-group::before,.float-group::after{content:
" ";display:table}
112 .clearfix::after,.float-group::after{clear:both}
113 :not(pre).nobreak{word-wrap:normal}
114 :not(pre).nowrap{white-space:nowrap}
115 :not(pre).pre-wrap{white-space:pre-wrap}
116 :not(pre):not([class^=L])
>code{font-size:
.9375em;font-style:normal!important;letter-spacing:
0;padding:
.1em
.5ex;word-spacing:-
.15em;background:#f7f7f8;border-radius:
4px;line-height:
1.45;text-rendering:optimizeSpeed}
117 pre{color:rgba(
0,
0,
0,
.9);font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;line-height:
1.45;text-rendering:optimizeSpeed}
118 pre code,pre pre{color:inherit;font-size:inherit;line-height:inherit}
119 pre
>code{display:block}
120 pre.nowrap,pre.nowrap pre{white-space:pre;word-wrap:normal}
121 em em{font-style:normal}
122 strong strong{font-weight:
400}
123 .keyseq{color:rgba(
51,
51,
51,
.8)}
124 kbd{font-family:
"Droid Sans Mono",
"DejaVu Sans Mono",monospace;display:inline-block;color:rgba(
0,
0,
0,
.8);font-size:
.65em;line-height:
1.45;background:#f7f7f7;border:
1px solid #ccc;border-radius:
3px;box-shadow:
0 1px
0 rgba(
0,
0,
0,
.2),inset
0 0 0 .1em #fff;margin:
0 .15em;padding:
.2em
.5em;vertical-align:middle;position:relative;top:-
.1em;white-space:nowrap}
125 .keyseq kbd:first-child{margin-left:
0}
126 .keyseq kbd:last-child{margin-right:
0}
127 .menuseq,.menuref{color:#
000}
128 .menuseq b:not(.caret),.menuref{font-weight:inherit}
129 .menuseq{word-spacing:-
.02em}
130 .menuseq b.caret{font-size:
1.25em;line-height:
.8}
131 .menuseq i.caret{font-weight:bold;text-align:center;width:
.45em}
132 b.button::before,b.button::after{position:relative;top:-
1px;font-weight:
400}
133 b.button::before{content:
"[";padding:
0 3px
0 2px}
134 b.button::after{content:
"]";padding:
0 2px
0 3px}
135 p a
>code:hover{color:rgba(
0,
0,
0,
.9)}
136 #header,#content,#footnotes,#footer{width:
100%;margin:
0 auto;max-width:
62.5em;*zoom:
1;position:relative;padding-left:
.9375em;padding-right:
.9375em}
137 #header::before,#header::after,#content::before,#content::after,#footnotes::before,#footnotes::after,#footer::before,#footer::after{content:
" ";display:table}
138 #header::after,#content::after,#footnotes::after,#footer::after{clear:both}
139 #content{margin-top:
1.25em}
140 #content::before{content:none}
141 #header
>h1:first-child{color:rgba(
0,
0,
0,
.85);margin-top:
2.25rem;margin-bottom:
0}
142 #header
>h1:first-child+#toc{margin-top:
8px;border-top:
1px solid #dddddf}
143 #header
>h1:only-child,body.toc2 #header
>h1:nth-last-child(
2){border-bottom:
1px solid #dddddf;padding-bottom:
8px}
144 #header .details{border-bottom:
1px solid #dddddf;line-height:
1.45;padding-top:
.25em;padding-bottom:
.25em;padding-left:
.25em;color:rgba(
0,
0,
0,
.6);display:flex;flex-flow:row wrap}
145 #header .details span:first-child{margin-left:-
.125em}
146 #header .details span.email a{color:rgba(
0,
0,
0,
.85)}
147 #header .details br{display:none}
148 #header .details br+span::before{content:
"\00a0\2013\00a0"}
149 #header .details br+span.author::before{content:
"\00a0\22c5\00a0";color:rgba(
0,
0,
0,
.85)}
150 #header .details br+span#revremark::before{content:
"\00a0|\00a0"}
151 #header #revnumber{text-transform:capitalize}
152 #header #revnumber::after{content:
"\00a0"}
153 #content
>h1:first-child:not([class]){color:rgba(
0,
0,
0,
.85);border-bottom:
1px solid #dddddf;padding-bottom:
8px;margin-top:
0;padding-top:
1rem;margin-bottom:
1.25rem}
154 #toc{border-bottom:
1px solid #e7e7e9;padding-bottom:
.5em}
155 #toc
>ul{margin-left:
.125em}
156 #toc ul.sectlevel0
>li
>a{font-style:italic}
157 #toc ul.sectlevel0 ul.sectlevel1{margin:
.5em
0}
158 #toc ul{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;list-style-type:none}
159 #toc li{line-height:
1.3334;margin-top:
.3334em}
160 #toc a{text-decoration:none}
161 #toc a:active{text-decoration:underline}
162 #toctitle{color:#
7a2518;font-size:
1.2em}
163 @media screen and (min-width:
768px){#toctitle{font-size:
1.375em}
164 body.toc2{padding-left:
15em;padding-right:
0}
165 #toc.toc2{margin-top:
0!important;background:#f8f8f7;position:fixed;width:
15em;left:
0;top:
0;border-right:
1px solid #e7e7e9;border-top-width:
0!important;border-bottom-width:
0!important;z-index:
1000;padding:
1.25em
1em;height:
100%;overflow:auto}
166 #toc.toc2 #toctitle{margin-top:
0;margin-bottom:
.8rem;font-size:
1.2em}
167 #toc.toc2
>ul{font-size:
.9em;margin-bottom:
0}
168 #toc.toc2 ul ul{margin-left:
0;padding-left:
1em}
169 #toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:
0;margin-top:
.5em;margin-bottom:
.5em}
170 body.toc2.toc-right{padding-left:
0;padding-right:
15em}
171 body.toc2.toc-right #toc.toc2{border-right-width:
0;border-left:
1px solid #e7e7e9;left:auto;right:
0}}
172 @media screen and (min-width:
1280px){body.toc2{padding-left:
20em;padding-right:
0}
173 #toc.toc2{width:
20em}
174 #toc.toc2 #toctitle{font-size:
1.375em}
175 #toc.toc2
>ul{font-size:
.95em}
176 #toc.toc2 ul ul{padding-left:
1.25em}
177 body.toc2.toc-right{padding-left:
0;padding-right:
20em}}
178 #content #toc{border:
1px solid #e0e0dc;margin-bottom:
1.25em;padding:
1.25em;background:#f8f8f7;border-radius:
4px}
179 #content #toc
>:first-child{margin-top:
0}
180 #content #toc
>:last-child{margin-bottom:
0}
181 #footer{max-width:none;background:rgba(
0,
0,
0,
.8);padding:
1.25em}
182 #footer-text{color:hsla(
0,
0%,
100%,
.8);line-height:
1.44}
183 #content{margin-bottom:
.625em}
184 .sect1{padding-bottom:
.625em}
185 @media screen and (min-width:
768px){#content{margin-bottom:
1.25em}
186 .sect1{padding-bottom:
1.25em}}
187 .sect1:last-child{padding-bottom:
0}
188 .sect1+.sect1{border-top:
1px solid #e7e7e9}
189 #content h1
>a.anchor,h2
>a.anchor,h3
>a.anchor,#toctitle
>a.anchor,.sidebarblock
>.content
>.title
>a.anchor,h4
>a.anchor,h5
>a.anchor,h6
>a.anchor{position:absolute;z-index:
1001;width:
1.5ex;margin-left:-
1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:
400}
190 #content h1
>a.anchor::before,h2
>a.anchor::before,h3
>a.anchor::before,#toctitle
>a.anchor::before,.sidebarblock
>.content
>.title
>a.anchor::before,h4
>a.anchor::before,h5
>a.anchor::before,h6
>a.anchor::before{content:
"\00A7";font-size:
.85em;display:block;padding-top:
.1em}
191 #content h1:hover
>a.anchor,#content h1
>a.anchor:hover,h2:hover
>a.anchor,h2
>a.anchor:hover,h3:hover
>a.anchor,#toctitle:hover
>a.anchor,.sidebarblock
>.content
>.title:hover
>a.anchor,h3
>a.anchor:hover,#toctitle
>a.anchor:hover,.sidebarblock
>.content
>.title
>a.anchor:hover,h4:hover
>a.anchor,h4
>a.anchor:hover,h5:hover
>a.anchor,h5
>a.anchor:hover,h6:hover
>a.anchor,h6
>a.anchor:hover{visibility:visible}
192 #content h1
>a.link,h2
>a.link,h3
>a.link,#toctitle
>a.link,.sidebarblock
>.content
>.title
>a.link,h4
>a.link,h5
>a.link,h6
>a.link{color:#ba3925;text-decoration:none}
193 #content h1
>a.link:hover,h2
>a.link:hover,h3
>a.link:hover,#toctitle
>a.link:hover,.sidebarblock
>.content
>.title
>a.link:hover,h4
>a.link:hover,h5
>a.link:hover,h6
>a.link:hover{color:#a53221}
194 details,.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:
1.25em}
195 details{margin-left:
1.25rem}
196 details
>summary{cursor:pointer;display:block;position:relative;line-height:
1.6;margin-bottom:
.625rem;outline:none;-webkit-tap-highlight-color:transparent}
197 details
>summary::-webkit-details-marker{display:none}
198 details
>summary::before{content:
"";border:solid transparent;border-left:solid;border-width:
.3em
0 .3em
.5em;position:absolute;top:
.5em;left:-
1.25rem;transform:translateX(
15%)}
199 details[open]
>summary::before{border:solid transparent;border-top:solid;border-width:
.5em
.3em
0;transform:translateY(
15%)}
200 details
>summary::after{content:
"";width:
1.25rem;height:
1em;position:absolute;top:
.3em;left:-
1.25rem}
201 .admonitionblock td.content
>.title,.audioblock
>.title,.exampleblock
>.title,.imageblock
>.title,.listingblock
>.title,.literalblock
>.title,.stemblock
>.title,.openblock
>.title,.paragraph
>.title,.quoteblock
>.title,table.tableblock
>.title,.verseblock
>.title,.videoblock
>.title,.dlist
>.title,.olist
>.title,.ulist
>.title,.qlist
>.title,.hdlist
>.title{text-rendering:optimizeLegibility;text-align:left;font-family:
"Noto Serif",
"DejaVu Serif",serif;font-size:
1rem;font-style:italic}
202 table.tableblock.fit-content
>caption.title{white-space:nowrap;width:
0}
203 .paragraph.lead
>p,#preamble
>.sectionbody
>[class=paragraph]:first-of-type p{font-size:
1.21875em;line-height:
1.6;color:rgba(
0,
0,
0,
.85)}
204 .admonitionblock
>table{border-collapse:separate;border:
0;background:none;width:
100%}
205 .admonitionblock
>table td.icon{text-align:center;width:
80px}
206 .admonitionblock
>table td.icon img{max-width:none}
207 .admonitionblock
>table td.icon .title{font-weight:bold;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;text-transform:uppercase}
208 .admonitionblock
>table td.content{padding-left:
1.125em;padding-right:
1.25em;border-left:
1px solid #dddddf;color:rgba(
0,
0,
0,
.6);word-wrap:anywhere}
209 .admonitionblock
>table td.content
>:last-child
>:last-child{margin-bottom:
0}
210 .exampleblock
>.content{border:
1px solid #e6e6e6;margin-bottom:
1.25em;padding:
1.25em;background:#fff;border-radius:
4px}
211 .sidebarblock{border:
1px solid #dbdbd6;margin-bottom:
1.25em;padding:
1.25em;background:#f3f3f2;border-radius:
4px}
212 .sidebarblock
>.content
>.title{color:#
7a2518;margin-top:
0;text-align:center}
213 .exampleblock
>.content
>:first-child,.sidebarblock
>.content
>:first-child{margin-top:
0}
214 .exampleblock
>.content
>:last-child,.exampleblock
>.content
>:last-child
>:last-child,.exampleblock
>.content .olist
>ol
>li:last-child
>:last-child,.exampleblock
>.content .ulist
>ul
>li:last-child
>:last-child,.exampleblock
>.content .qlist
>ol
>li:last-child
>:last-child,.sidebarblock
>.content
>:last-child,.sidebarblock
>.content
>:last-child
>:last-child,.sidebarblock
>.content .olist
>ol
>li:last-child
>:last-child,.sidebarblock
>.content .ulist
>ul
>li:last-child
>:last-child,.sidebarblock
>.content .qlist
>ol
>li:last-child
>:last-child{margin-bottom:
0}
215 .literalblock pre,.listingblock
>.content
>pre{border-radius:
4px;overflow-x:auto;padding:
1em;font-size:
.8125em}
216 @media screen and (min-width:
768px){.literalblock pre,.listingblock
>.content
>pre{font-size:
.90625em}}
217 @media screen and (min-width:
1280px){.literalblock pre,.listingblock
>.content
>pre{font-size:
1em}}
218 .literalblock pre,.listingblock
>.content
>pre:not(.highlight),.listingblock
>.content
>pre[class=highlight],.listingblock
>.content
>pre[class^=
"highlight "]{background:#f7f7f8}
219 .literalblock.output pre{color:#f7f7f8;background:rgba(
0,
0,
0,
.9)}
220 .listingblock
>.content{position:relative}
221 .listingblock code[data-lang]::before{display:none;content:attr(data-lang);position:absolute;font-size:
.75em;top:
.425rem;right:
.5rem;line-height:
1;text-transform:uppercase;color:inherit;opacity:
.5}
222 .listingblock:hover code[data-lang]::before{display:block}
223 .listingblock.terminal pre .command::before{content:attr(data-prompt);padding-right:
.5em;color:inherit;opacity:
.5}
224 .listingblock.terminal pre .command:not([data-prompt])::before{content:
"$"}
225 .listingblock pre.highlightjs{padding:
0}
226 .listingblock pre.highlightjs
>code{padding:
1em;border-radius:
4px}
227 .listingblock pre.prettyprint{border-width:
0}
228 .prettyprint{background:#f7f7f8}
229 pre.prettyprint .linenums{line-height:
1.45;margin-left:
2em}
230 pre.prettyprint li{background:none;list-style-type:inherit;padding-left:
0}
231 pre.prettyprint li code[data-lang]::before{opacity:
1}
232 pre.prettyprint li:not(:first-child) code[data-lang]::before{display:none}
233 table.linenotable{border-collapse:separate;border:
0;margin-bottom:
0;background:none}
234 table.linenotable td[class]{color:inherit;vertical-align:top;padding:
0;line-height:inherit;white-space:normal}
235 table.linenotable td.code{padding-left:
.75em}
236 table.linenotable td.linenos,pre.pygments .linenos{border-right:
1px solid;opacity:
.35;padding-right:
.5em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
237 pre.pygments span.linenos{display:inline-block;margin-right:
.75em}
238 .quoteblock{margin:
0 1em
1.25em
1.5em;display:table}
239 .quoteblock:not(.excerpt)
>.title{margin-left:-
1.5em;margin-bottom:
.75em}
240 .quoteblock blockquote,.quoteblock p{color:rgba(
0,
0,
0,
.85);font-size:
1.15rem;line-height:
1.75;word-spacing:
.1em;letter-spacing:
0;font-style:italic;text-align:justify}
241 .quoteblock blockquote{margin:
0;padding:
0;border:
0}
242 .quoteblock blockquote::before{content:
"\201c";float:left;font-size:
2.75em;font-weight:bold;line-height:
.6em;margin-left:-
.6em;color:#
7a2518;text-shadow:
0 1px
2px rgba(
0,
0,
0,
.1)}
243 .quoteblock blockquote
>.paragraph:last-child p{margin-bottom:
0}
244 .quoteblock .attribution{margin-top:
.75em;margin-right:
.5ex;text-align:right}
245 .verseblock{margin:
0 1em
1.25em}
246 .verseblock pre{font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-size:
1.15rem;color:rgba(
0,
0,
0,
.85);font-weight:
300;text-rendering:optimizeLegibility}
247 .verseblock pre strong{font-weight:
400}
248 .verseblock .attribution{margin-top:
1.25rem;margin-left:
.5ex}
249 .quoteblock .attribution,.verseblock .attribution{font-size:
.9375em;line-height:
1.45;font-style:italic}
250 .quoteblock .attribution br,.verseblock .attribution br{display:none}
251 .quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-
.025em;color:rgba(
0,
0,
0,
.6)}
252 .quoteblock.abstract blockquote::before,.quoteblock.excerpt blockquote::before,.quoteblock .quoteblock blockquote::before{display:none}
253 .quoteblock.abstract blockquote,.quoteblock.abstract p,.quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{line-height:
1.6;word-spacing:
0}
254 .quoteblock.abstract{margin:
0 1em
1.25em;display:block}
255 .quoteblock.abstract
>.title{margin:
0 0 .375em;font-size:
1.15em;text-align:center}
256 .quoteblock.excerpt
>blockquote,.quoteblock .quoteblock{padding:
0 0 .25em
1em;border-left:
.25em solid #dddddf}
257 .quoteblock.excerpt,.quoteblock .quoteblock{margin-left:
0}
258 .quoteblock.excerpt blockquote,.quoteblock.excerpt p,.quoteblock .quoteblock blockquote,.quoteblock .quoteblock p{color:inherit;font-size:
1.0625rem}
259 .quoteblock.excerpt .attribution,.quoteblock .quoteblock .attribution{color:inherit;font-size:
.85rem;text-align:left;margin-right:
0}
260 p.tableblock:last-child{margin-bottom:
0}
261 td.tableblock
>.content{margin-bottom:
1.25em;word-wrap:anywhere}
262 td.tableblock
>.content
>:last-child{margin-bottom:-
1.25em}
263 table.tableblock,th.tableblock,td.tableblock{border:
0 solid #dedede}
264 table.grid-all
>*
>tr
>*{border-width:
1px}
265 table.grid-cols
>*
>tr
>*{border-width:
0 1px}
266 table.grid-rows
>*
>tr
>*{border-width:
1px
0}
267 table.frame-all{border-width:
1px}
268 table.frame-ends{border-width:
1px
0}
269 table.frame-sides{border-width:
0 1px}
270 table.frame-none
>colgroup+*
>:first-child
>*,table.frame-sides
>colgroup+*
>:first-child
>*{border-top-width:
0}
271 table.frame-none
>:last-child
>:last-child
>*,table.frame-sides
>:last-child
>:last-child
>*{border-bottom-width:
0}
272 table.frame-none
>*
>tr
>:first-child,table.frame-ends
>*
>tr
>:first-child{border-left-width:
0}
273 table.frame-none
>*
>tr
>:last-child,table.frame-ends
>*
>tr
>:last-child{border-right-width:
0}
274 table.stripes-all
>*
>tr,table.stripes-odd
>*
>tr:nth-of-type(odd),table.stripes-even
>*
>tr:nth-of-type(even),table.stripes-hover
>*
>tr:hover{background:#f8f8f7}
275 th.halign-left,td.halign-left{text-align:left}
276 th.halign-right,td.halign-right{text-align:right}
277 th.halign-center,td.halign-center{text-align:center}
278 th.valign-top,td.valign-top{vertical-align:top}
279 th.valign-bottom,td.valign-bottom{vertical-align:bottom}
280 th.valign-middle,td.valign-middle{vertical-align:middle}
281 table thead th,table tfoot th{font-weight:bold}
282 tbody tr th{background:#f7f8f7}
283 tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(
0,
0,
0,
.8);font-weight:bold}
284 p.tableblock
>code:only-child{background:none;padding:
0}
285 p.tableblock{font-size:
1em}
286 ol{margin-left:
1.75em}
287 ul li ol{margin-left:
1.5em}
288 dl dd{margin-left:
1.125em}
289 dl dd:last-child,dl dd:last-child
>:last-child{margin-bottom:
0}
290 li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:
.625em}
291 ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
292 ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:
.625em}
293 ul.unstyled,ol.unstyled{margin-left:
0}
294 li
>p:empty:only-child::before{content:
"";display:inline-block}
295 ul.checklist
>li
>p:first-child{margin-left:-
1em}
296 ul.checklist
>li
>p:first-child
>.fa-square-o:first-child,ul.checklist
>li
>p:first-child
>.fa-check-square-o:first-child{width:
1.25em;font-size:
.8em;position:relative;bottom:
.125em}
297 ul.checklist
>li
>p:first-child
>input[type=checkbox]:first-child{margin-right:
.25em}
298 ul.inline{display:flex;flex-flow:row wrap;list-style:none;margin:
0 0 .625em -
1.25em}
299 ul.inline
>li{margin-left:
1.25em}
300 .unstyled dl dt{font-weight:
400;font-style:normal}
301 ol.arabic{list-style-type:decimal}
302 ol.decimal{list-style-type:decimal-leading-zero}
303 ol.loweralpha{list-style-type:lower-alpha}
304 ol.upperalpha{list-style-type:upper-alpha}
305 ol.lowerroman{list-style-type:lower-roman}
306 ol.upperroman{list-style-type:upper-roman}
307 ol.lowergreek{list-style-type:lower-greek}
308 .hdlist
>table,.colist
>table{border:
0;background:none}
309 .hdlist
>table
>tbody
>tr,.colist
>table
>tbody
>tr{background:none}
310 td.hdlist1,td.hdlist2{vertical-align:top;padding:
0 .625em}
311 td.hdlist1{font-weight:bold;padding-bottom:
1.25em}
312 td.hdlist2{word-wrap:anywhere}
313 .literalblock+.colist,.listingblock+.colist{margin-top:-
.5em}
314 .colist td:not([class]):first-child{padding:
.4em
.75em
0;line-height:
1;vertical-align:top}
315 .colist td:not([class]):first-child img{max-width:none}
316 .colist td:not([class]):last-child{padding:
.25em
0}
317 .thumb,.th{line-height:
0;display:inline-block;border:
4px solid #fff;box-shadow:
0 0 0 1px #ddd}
318 .imageblock.left{margin:
.25em
.625em
1.25em
0}
319 .imageblock.right{margin:
.25em
0 1.25em
.625em}
320 .imageblock
>.title{margin-bottom:
0}
321 .imageblock.thumb,.imageblock.th{border-width:
6px}
322 .imageblock.thumb
>.title,.imageblock.th
>.title{padding:
0 .125em}
323 .image.left,.image.right{margin-top:
.25em;margin-bottom:
.25em;display:inline-block;line-height:
0}
324 .image.left{margin-right:
.625em}
325 .image.right{margin-left:
.625em}
326 a.image{text-decoration:none;display:inline-block}
327 a.image object{pointer-events:none}
328 sup.footnote,sup.footnoteref{font-size:
.875em;position:static;vertical-align:super}
329 sup.footnote a,sup.footnoteref a{text-decoration:none}
330 sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
331 #footnotes{padding-top:
.75em;padding-bottom:
.75em;margin-bottom:
.625em}
332 #footnotes hr{width:
20%;min-width:
6.25em;margin:-
.25em
0 .75em;border-width:
1px
0 0}
333 #footnotes .footnote{padding:
0 .375em
0 .225em;line-height:
1.3334;font-size:
.875em;margin-left:
1.2em;margin-bottom:
.2em}
334 #footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none;margin-left:-
1.05em}
335 #footnotes .footnote:last-of-type{margin-bottom:
0}
336 #content #footnotes{margin-top:-
.625em;margin-bottom:
0;padding:
.75em
0}
337 div.unbreakable{page-break-inside:avoid}
338 .big{font-size:larger}
339 .small{font-size:smaller}
340 .underline{text-decoration:underline}
341 .overline{text-decoration:overline}
342 .line-through{text-decoration:line-through}
344 .aqua-background{background:#
00fafa}
346 .black-background{background:#
000}
348 .blue-background{background:#
0000fa}
349 .fuchsia{color:#bf00bf}
350 .fuchsia-background{background:#fa00fa}
352 .gray-background{background:#
7d7d7d}
353 .green{color:#
006000}
354 .green-background{background:#
007d00}
356 .lime-background{background:#
00fa00}
357 .maroon{color:#
600000}
358 .maroon-background{background:#
7d0000}
360 .navy-background{background:#
00007d}
361 .olive{color:#
606000}
362 .olive-background{background:#
7d7d00}
363 .purple{color:#
600060}
364 .purple-background{background:#
7d007d}
366 .red-background{background:#fa0000}
367 .silver{color:#
909090}
368 .silver-background{background:#bcbcbc}
370 .teal-background{background:#
007d7d}
371 .white{color:#bfbfbf}
372 .white-background{background:#fafafa}
373 .yellow{color:#bfbf00}
374 .yellow-background{background:#fafa00}
375 span.icon
>.fa{cursor:default}
376 a span.icon
>.fa{cursor:inherit}
377 .admonitionblock td.icon [class^=
"fa icon-"]{font-size:
2.5em;text-shadow:
1px
1px
2px rgba(
0,
0,
0,
.5);cursor:default}
378 .admonitionblock td.icon .icon-note::before{content:
"\f05a";color:#
19407c}
379 .admonitionblock td.icon .icon-tip::before{content:
"\f0eb";text-shadow:
1px
1px
2px rgba(
155,
155,
0,
.8);color:#
111}
380 .admonitionblock td.icon .icon-warning::before{content:
"\f071";color:#bf6900}
381 .admonitionblock td.icon .icon-caution::before{content:
"\f06d";color:#bf3400}
382 .admonitionblock td.icon .icon-important::before{content:
"\f06a";color:#bf0000}
383 .conum[data-value]{display:inline-block;color:#fff!important;background:rgba(
0,
0,
0,
.8);border-radius:
50%;text-align:center;font-size:
.75em;width:
1.67em;height:
1.67em;line-height:
1.67em;font-family:
"Open Sans",
"DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
384 .conum[data-value] *{color:#fff!important}
385 .conum[data-value]+b{display:none}
386 .conum[data-value]::after{content:attr(data-value)}
387 pre .conum[data-value]{position:relative;top:-
.125em}
388 b.conum *{color:inherit!important}
389 .conum:not([data-value]):empty{display:none}
390 dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
391 h1,h2,p,td.content,span.alt,summary{letter-spacing:-
.01em}
392 p strong,td.content strong,div.footnote strong{letter-spacing:-
.005em}
393 p,blockquote,dt,td.content,td.hdlist1,span.alt,summary{font-size:
1.0625rem}
394 p{margin-bottom:
1.25rem}
395 .sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:
1em}
396 .exampleblock
>.content{background:#fffef7;border-color:#e0e0dc;box-shadow:
0 1px
4px #e0e0dc}
397 .print-only{display:none!important}
398 @page{margin:
1.25cm
.75cm}
399 @media print{*{box-shadow:none!important;text-shadow:none!important}
401 a{color:inherit!important;text-decoration:underline!important}
402 a.bare,a[href^=
"#"],a[href^=
"mailto:"]{text-decoration:none!important}
403 a[href^=
"http:"]:not(.bare)::after,a[href^=
"https:"]:not(.bare)::after{content:
"(" attr(href)
")";display:inline-block;font-size:
.875em;padding-left:
.25em}
404 abbr[title]{border-bottom:
1px dotted}
405 abbr[title]::after{content:
" (" attr(title)
")"}
406 pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
407 thead{display:table-header-group}
409 p,blockquote,dt,td.content{font-size:
1em;orphans:
3;widows:
3}
410 h2,h3,#toctitle,.sidebarblock
>.content
>.title{page-break-after:avoid}
411 #header,#content,#footnotes,#footer{max-width:none}
412 #toc,.sidebarblock,.exampleblock
>.content{background:none!important}
413 #toc{border-bottom:
1px solid #dddddf!important;padding-bottom:
0!important}
414 body.book #header{text-align:center}
415 body.book #header
>h1:first-child{border:
0!important;margin:
2.5em
0 1em}
416 body.book #header .details{border:
0!important;display:block;padding:
0!important}
417 body.book #header .details span:first-child{margin-left:
0!important}
418 body.book #header .details br{display:block}
419 body.book #header .details br+span::before{content:none!important}
420 body.book #toc{border:
0!important;text-align:left!important;padding:
0!important;margin:
0!important}
421 body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1
>h2{page-break-before:always}
422 .listingblock code[data-lang]::before{display:block}
423 #footer{padding:
0 .9375em}
424 .hide-on-print{display:none!important}
425 .print-only{display:block!important}
426 .hide-for-print{display:none!important}
427 .show-for-print{display:inherit!important}}
428 @media amzn-kf8,print{#header
>h1:first-child{margin-top:
1.25rem}
429 .sect1{padding:
0!important}
430 .sect1+.sect1{border:
0}
431 #footer{background:none}
432 #footer-text{color:rgba(
0,
0,
0,
.6);font-size:
.9em}}
433 @media amzn-kf8{#header,#content,#footnotes,#footer{padding:
0}}
441 <body class=
"manpage">
443 <h1>git-fsck(
1) Manual Page
</h1>
444 <h2 id=
"_name">NAME
</h2>
445 <div class=
"sectionbody">
446 <p>git-fsck - Verifies the connectivity and validity of the objects in the database
</p>
451 <h2 id=
"_synopsis">SYNOPSIS
</h2>
452 <div class=
"sectionbody">
453 <div class=
"verseblock">
454 <pre class=
"content"><em>git fsck
</em> [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
455 [--[no-]full] [--strict] [--verbose] [--lost-found]
456 [--[no-]dangling] [--[no-]progress] [--connectivity-only]
457 [--[no-]name-objects] [
<object
>…​]
</pre>
462 <h2 id=
"_description">DESCRIPTION
</h2>
463 <div class=
"sectionbody">
464 <div class=
"paragraph">
465 <p>Verifies the connectivity and validity of the objects in the database.
</p>
470 <h2 id=
"_options">OPTIONS
</h2>
471 <div class=
"sectionbody">
474 <dt class=
"hdlist1"><object
></dt>
476 <p>An object to treat as the head of an unreachability trace.
</p>
477 <div class=
"paragraph">
478 <p>If no objects are given,
<em>git fsck
</em> defaults to using the
479 index file, all SHA-
1 references in the
<code>refs
</code> namespace, and all reflogs
480 (unless --no-reflogs is given) as heads.
</p>
483 <dt class=
"hdlist1">--unreachable
</dt>
485 <p>Print out objects that exist but that aren
’t reachable from any
486 of the reference nodes.
</p>
488 <dt class=
"hdlist1">--[no-]dangling
</dt>
490 <p>Print objects that exist but that are never
<em>directly
</em> used (default).
491 <code>--no-dangling
</code> can be used to omit this information from the output.
</p>
493 <dt class=
"hdlist1">--root
</dt>
495 <p>Report root nodes.
</p>
497 <dt class=
"hdlist1">--tags
</dt>
501 <dt class=
"hdlist1">--cache
</dt>
503 <p>Consider any object recorded in the index also as a head node for
504 an unreachability trace.
</p>
506 <dt class=
"hdlist1">--no-reflogs
</dt>
508 <p>Do not consider commits that are referenced only by an
509 entry in a reflog to be reachable. This option is meant
510 only to search for commits that used to be in a ref, but
511 now aren
’t, but are still in that corresponding reflog.
</p>
513 <dt class=
"hdlist1">--full
</dt>
515 <p>Check not just objects in GIT_OBJECT_DIRECTORY
516 ($GIT_DIR/objects), but also the ones found in alternate
517 object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES
518 or $GIT_DIR/objects/info/alternates,
519 and in packed Git archives found in $GIT_DIR/objects/pack
520 and corresponding pack subdirectories in alternate
521 object pools. This is now default; you can turn it off
524 <dt class=
"hdlist1">--connectivity-only
</dt>
526 <p>Check only the connectivity of reachable objects, making sure
527 that any objects referenced by a reachable tag, commit, or tree
528 are present. This speeds up the operation by avoiding reading
529 blobs entirely (though it does still check that referenced blobs
530 exist). This will detect corruption in commits and trees, but
531 not do any semantic checks (e.g., for format errors). Corruption
532 in blob objects will not be detected at all.
</p>
533 <div class=
"paragraph">
534 <p>Unreachable tags, commits, and trees will also be accessed to find the
535 tips of dangling segments of history. Use
<code>--no-dangling
</code> if you don
’t
536 care about this output and want to speed it up further.
</p>
539 <dt class=
"hdlist1">--strict
</dt>
541 <p>Enable more strict checking, namely to catch a file mode
542 recorded with g+w bit set, which was created by older
543 versions of Git. Existing repositories, including the
544 Linux kernel, Git itself, and sparse repository have old
545 objects that trigger this check, but it is recommended
546 to check new projects with this flag.
</p>
548 <dt class=
"hdlist1">--verbose
</dt>
552 <dt class=
"hdlist1">--lost-found
</dt>
554 <p>Write dangling objects into .git/lost-found/commit/ or
555 .git/lost-found/other/, depending on type. If the object is
556 a blob, the contents are written into the file, rather than
559 <dt class=
"hdlist1">--name-objects
</dt>
561 <p>When displaying names of reachable objects, in addition to the
562 SHA-
1 also display a name that describes
<strong>how
</strong> they are reachable,
563 compatible with
<a href=
"git-rev-parse.html">git-rev-parse(
1)
</a>, e.g.
564 <code>HEAD@
</code>{
1234567890}~
25^
2:src/.
</p>
566 <dt class=
"hdlist1">--[no-]progress
</dt>
568 <p>Progress status is reported on the standard error stream by
569 default when it is attached to a terminal, unless
570 --no-progress or --verbose is specified. --progress forces
571 progress status even if the standard error stream is not
572 directed to a terminal.
</p>
579 <h2 id=
"_configuration">CONFIGURATION
</h2>
580 <div class=
"sectionbody">
581 <div class=
"paragraph">
582 <p>Everything below this line in this section is selectively included
583 from the
<a href=
"git-config.html">git-config(
1)
</a> documentation. The content is the same
584 as what
’s found there:
</p>
588 <dt class=
"hdlist1">fsck.
<msg-id
></dt>
590 <p>During fsck git may find issues with legacy data which
591 wouldn
’t be generated by current versions of git, and which
592 wouldn
’t be sent over the wire if
<code>transfer.fsckObjects
</code> was
593 set. This feature is intended to support working with legacy
594 repositories containing such data.
</p>
595 <div class=
"paragraph">
596 <p>Setting
<code>fsck.
</code><em><msg-id
></em> will be picked up by
<a href=
"git-fsck.html">git-fsck(
1)
</a>, but
597 to accept pushes of such data set
<code>receive.fsck.
</code><em><msg-id
></em> instead, or
598 to clone or fetch it set
<code>fetch.fsck.
</code><em><msg-id
></em>.
</p>
600 <div class=
"paragraph">
601 <p>The rest of the documentation discusses
<code>fsck.
</code>* for brevity, but the
602 same applies for the corresponding
<code>receive.fsck.
</code>* and
603 <code>fetch.fsck.
</code>*. variables.
</p>
605 <div class=
"paragraph">
606 <p>Unlike variables like
<code>color.ui
</code> and
<code>core.editor
</code>, the
607 <code>receive.fsck.
</code><em><msg-id
></em> and
<code>fetch.fsck.
</code><em><msg-id
></em> variables will not
608 fall back on the
<code>fsck.
</code><em><msg-id
></em> configuration if they aren
’t set. To
609 uniformly configure the same fsck settings in different circumstances,
610 all three of them must be set to the same values.
</p>
612 <div class=
"paragraph">
613 <p>When
<code>fsck.
</code><em><msg-id
></em> is set, errors can be switched to warnings and
614 vice versa by configuring the
<code>fsck.
</code><em><msg-id
></em> setting where the
615 <em><msg-id
></em> is the fsck message ID and the value is one of
<code>error
</code>,
616 <code>warn
</code> or
<code>ignore
</code>. For convenience, fsck prefixes the error/warning
617 with the message ID, e.g.
"missingEmail: invalid author/committer
618 line - missing email" means that setting
<code>fsck.missingEmail
</code> <code>=
</code> <code>ignore
</code>
619 will hide that issue.
</p>
621 <div class=
"paragraph">
622 <p>In general, it is better to enumerate existing objects with problems
623 with
<code>fsck.skipList
</code>, instead of listing the kind of breakages these
624 problematic objects share to be ignored, as doing the latter will
625 allow new instances of the same breakages go unnoticed.
</p>
627 <div class=
"paragraph">
628 <p>Setting an unknown
<code>fsck.
</code><em><msg-id
></em> value will cause fsck to die, but
629 doing the same for
<code>receive.fsck.
</code><em><msg-id
></em> and
<code>fetch.fsck.
</code><em><msg-id
></em>
630 will only cause git to warn.
</p>
632 <div class=
"paragraph">
633 <p>See the
<code>Fsck
</code> <code>Messages
</code> section of
<a href=
"git-fsck.html">git-fsck(
1)
</a> for supported
634 values of
<em><msg-id
></em>.
</p>
637 <dt class=
"hdlist1">fsck.skipList
</dt>
639 <p>The path to a list of object names (i.e. one unabbreviated SHA-
1 per
640 line) that are known to be broken in a non-fatal way and should
641 be ignored. On versions of Git
2.20 and later, comments (
<em>#
</em>), empty
642 lines, and any leading and trailing whitespace are ignored. Everything
643 but a SHA-
1 per line will error out on older versions.
</p>
644 <div class=
"paragraph">
645 <p>This feature is useful when an established project should be accepted
646 despite early commits containing errors that can be safely ignored,
647 such as invalid committer email addresses. Note: corrupt objects
648 cannot be skipped with this setting.
</p>
650 <div class=
"paragraph">
651 <p>Like
<code>fsck.
</code><em><msg-id
></em> this variable has corresponding
652 <code>receive.fsck.skipList
</code> and
<code>fetch.fsck.skipList
</code> variants.
</p>
654 <div class=
"paragraph">
655 <p>Unlike variables like
<code>color.ui
</code> and
<code>core.editor
</code> the
656 <code>receive.fsck.skipList
</code> and
<code>fetch.fsck.skipList
</code> variables will not
657 fall back on the
<code>fsck.skipList
</code> configuration if they aren
’t set. To
658 uniformly configure the same fsck settings in different circumstances,
659 all three of them must be set to the same values.
</p>
661 <div class=
"paragraph">
662 <p>Older versions of Git (before
2.20) documented that the object names
663 list should be sorted. This was never a requirement; the object names
664 could appear in any order, but when reading the list we tracked whether
665 the list was sorted for the purposes of an internal binary search
666 implementation, which could save itself some work with an already sorted
667 list. Unless you had a humongous list there was no reason to go out of
668 your way to pre-sort the list. After Git version
2.20 a hash implementation
669 is used instead, so there
’s now no reason to pre-sort the list.
</p>
677 <h2 id=
"_discussion">DISCUSSION
</h2>
678 <div class=
"sectionbody">
679 <div class=
"paragraph">
680 <p>git-fsck tests SHA-
1 and general object sanity, and it does full tracking
681 of the resulting reachability and everything else. It prints out any
682 corruption it finds (missing or bad objects), and if you use the
683 <code>--unreachable
</code> flag it will also print out objects that exist but that
684 aren
’t reachable from any of the specified head nodes (or the default
685 set, as mentioned above).
</p>
687 <div class=
"paragraph">
688 <p>Any corrupt objects you will have to find in backups or other archives
689 (i.e., you can just remove them and do an
<em>rsync
</em> with some other site in
690 the hopes that somebody else has the object you have corrupted).
</p>
692 <div class=
"paragraph">
693 <p>If core.commitGraph is true, the commit-graph file will also be inspected
694 using
<em>git commit-graph verify
</em>. See
<a href=
"git-commit-graph.html">git-commit-graph(
1)
</a>.
</p>
699 <h2 id=
"_extracted_diagnostics">Extracted Diagnostics
</h2>
700 <div class=
"sectionbody">
703 <dt class=
"hdlist1">unreachable
<type
> <object
></dt>
705 <p>The
<type
> object
<object
>, isn
’t actually referred to directly
706 or indirectly in any of the trees or commits seen. This can
707 mean that there
’s another root node that you
’re not specifying
708 or that the tree is corrupt. If you haven
’t missed a root node
709 then you might as well delete unreachable nodes since they
710 can
’t be used.
</p>
712 <dt class=
"hdlist1">missing
<type
> <object
></dt>
714 <p>The
<type
> object
<object
>, is referred to but isn
’t present in
717 <dt class=
"hdlist1">dangling
<type
> <object
></dt>
719 <p>The
<type
> object
<object
>, is present in the database but never
720 <em>directly
</em> used. A dangling commit could be a root node.
</p>
722 <dt class=
"hdlist1">hash mismatch
<object
></dt>
724 <p>The database has an object whose hash doesn
’t match the
725 object database value.
726 This indicates a serious data integrity problem.
</p>
733 <h2 id=
"_fsck_messages">FSCK MESSAGES
</h2>
734 <div class=
"sectionbody">
735 <div class=
"paragraph">
736 <p>The following lists the types of errors
<code>git
</code> <code>fsck
</code> detects and what
737 each error means, with their default severity. The severity of the
738 error, other than those that are marked as
"(FATAL)", can be tweaked
739 by setting the corresponding
<code>fsck.
</code><em><msg-id
></em> configuration variable.
</p>
743 <dt class=
"hdlist1"><code>badDate
</code></dt>
745 <p>(ERROR) Invalid date format in an author/committer line.
</p>
747 <dt class=
"hdlist1"><code>badDateOverflow
</code></dt>
749 <p>(ERROR) Invalid date value in an author/committer line.
</p>
751 <dt class=
"hdlist1"><code>badEmail
</code></dt>
753 <p>(ERROR) Invalid email format in an author/committer line.
</p>
755 <dt class=
"hdlist1"><code>badFilemode
</code></dt>
757 <p>(INFO) A tree contains a bad filemode entry.
</p>
759 <dt class=
"hdlist1"><code>badName
</code></dt>
761 <p>(ERROR) An author/committer name is empty.
</p>
763 <dt class=
"hdlist1"><code>badObjectSha1
</code></dt>
765 <p>(ERROR) An object has a bad sha1.
</p>
767 <dt class=
"hdlist1"><code>badParentSha1
</code></dt>
769 <p>(ERROR) A commit object has a bad parent sha1.
</p>
771 <dt class=
"hdlist1"><code>badRefFiletype
</code></dt>
773 <p>(ERROR) A ref has a bad file type.
</p>
775 <dt class=
"hdlist1"><code>badRefName
</code></dt>
777 <p>(ERROR) A ref has an invalid format.
</p>
779 <dt class=
"hdlist1"><code>badTagName
</code></dt>
781 <p>(INFO) A tag has an invalid format.
</p>
783 <dt class=
"hdlist1"><code>badTimezone
</code></dt>
785 <p>(ERROR) Found an invalid time zone in an author/committer line.
</p>
787 <dt class=
"hdlist1"><code>badTree
</code></dt>
789 <p>(ERROR) A tree cannot be parsed.
</p>
791 <dt class=
"hdlist1"><code>badTreeSha1
</code></dt>
793 <p>(ERROR) A tree has an invalid format.
</p>
795 <dt class=
"hdlist1"><code>badType
</code></dt>
797 <p>(ERROR) Found an invalid object type.
</p>
799 <dt class=
"hdlist1"><code>duplicateEntries
</code></dt>
801 <p>(ERROR) A tree contains duplicate file entries.
</p>
803 <dt class=
"hdlist1"><code>emptyName
</code></dt>
805 <p>(WARN) A path contains an empty name.
</p>
807 <dt class=
"hdlist1"><code>extraHeaderEntry
</code></dt>
809 <p>(IGNORE) Extra headers found after
<code>tagger
</code>.
</p>
811 <dt class=
"hdlist1"><code>fullPathname
</code></dt>
813 <p>(WARN) A path contains the full path starting with
"/".
</p>
815 <dt class=
"hdlist1"><code>gitattributesBlob
</code></dt>
817 <p>(ERROR) A non-blob found at .
<code>gitattributes
</code>.
</p>
819 <dt class=
"hdlist1"><code>gitattributesLarge
</code></dt>
821 <p>(ERROR) The .
<code>gitattributes
</code> blob is too large.
</p>
823 <dt class=
"hdlist1"><code>gitattributesLineLength
</code></dt>
825 <p>(ERROR) The .
<code>gitattributes
</code> blob contains too long lines.
</p>
827 <dt class=
"hdlist1"><code>gitattributesMissing
</code></dt>
829 <p>(ERROR) Unable to read .
<code>gitattributes
</code> blob.
</p>
831 <dt class=
"hdlist1"><code>gitattributesSymlink
</code></dt>
833 <p>(INFO) .
<code>gitattributes
</code> is a symlink.
</p>
835 <dt class=
"hdlist1"><code>gitignoreSymlink
</code></dt>
837 <p>(INFO) .
<code>gitignore
</code> is a symlink.
</p>
839 <dt class=
"hdlist1"><code>gitmodulesBlob
</code></dt>
841 <p>(ERROR) A non-blob found at .
<code>gitmodules
</code>.
</p>
843 <dt class=
"hdlist1"><code>gitmodulesLarge
</code></dt>
845 <p>(ERROR) The .
<code>gitmodules
</code> file is too large to parse.
</p>
847 <dt class=
"hdlist1"><code>gitmodulesMissing
</code></dt>
849 <p>(ERROR) Unable to read .
<code>gitmodules
</code> blob.
</p>
851 <dt class=
"hdlist1"><code>gitmodulesName
</code></dt>
853 <p>(ERROR) A submodule name is invalid.
</p>
855 <dt class=
"hdlist1"><code>gitmodulesParse
</code></dt>
857 <p>(INFO) Could not parse .
<code>gitmodules
</code> blob.
</p>
861 <div class=
"paragraph">
862 <p><code>gitmodulesLarge
</code>;
863 (ERROR) .
<code>gitmodules
</code> blob is too large to parse.
</p>
867 <dt class=
"hdlist1"><code>gitmodulesPath
</code></dt>
869 <p>(ERROR) .
<code>gitmodules
</code> path is invalid.
</p>
871 <dt class=
"hdlist1"><code>gitmodulesSymlink
</code></dt>
873 <p>(ERROR) .
<code>gitmodules
</code> is a symlink.
</p>
875 <dt class=
"hdlist1"><code>gitmodulesUpdate
</code></dt>
877 <p>(ERROR) Found an invalid submodule update setting.
</p>
879 <dt class=
"hdlist1"><code>gitmodulesUrl
</code></dt>
881 <p>(ERROR) Found an invalid submodule url.
</p>
883 <dt class=
"hdlist1"><code>hasDot
</code></dt>
885 <p>(WARN) A tree contains an entry named ..
</p>
887 <dt class=
"hdlist1"><code>hasDotdot
</code></dt>
889 <p>(WARN) A tree contains an entry named ...
</p>
891 <dt class=
"hdlist1"><code>hasDotgit
</code></dt>
893 <p>(WARN) A tree contains an entry named .
<code>git
</code>.
</p>
895 <dt class=
"hdlist1"><code>largePathname
</code></dt>
897 <p>(WARN) A tree contains an entry with a very long path name. If
898 the value of
<code>fsck.largePathname
</code> contains a colon, that value
899 is used as the maximum allowable length (e.g.,
"warn:10" would
900 complain about any path component of
11 or more bytes). The
901 default value is
4096.
</p>
903 <dt class=
"hdlist1"><code>mailmapSymlink
</code></dt>
905 <p>(INFO) .
<code>mailmap
</code> is a symlink.
</p>
907 <dt class=
"hdlist1"><code>missingAuthor
</code></dt>
909 <p>(ERROR) Author is missing.
</p>
911 <dt class=
"hdlist1"><code>missingCommitter
</code></dt>
913 <p>(ERROR) Committer is missing.
</p>
915 <dt class=
"hdlist1"><code>missingEmail
</code></dt>
917 <p>(ERROR) Email is missing in an author/committer line.
</p>
919 <dt class=
"hdlist1"><code>missingNameBeforeEmail
</code></dt>
921 <p>(ERROR) Missing name before an email in an author/committer line.
</p>
923 <dt class=
"hdlist1"><code>missingObject
</code></dt>
925 <p>(ERROR) Missing
<code>object
</code> line in tag object.
</p>
927 <dt class=
"hdlist1"><code>missingSpaceBeforeDate
</code></dt>
929 <p>(ERROR) Missing space before date in an author/committer line.
</p>
931 <dt class=
"hdlist1"><code>missingSpaceBeforeEmail
</code></dt>
933 <p>(ERROR) Missing space before the email in an author/committer line.
</p>
935 <dt class=
"hdlist1"><code>missingTag
</code></dt>
937 <p>(ERROR) Unexpected end after
<code>type
</code> line in a tag object.
</p>
939 <dt class=
"hdlist1"><code>missingTagEntry
</code></dt>
941 <p>(ERROR) Missing
<code>tag
</code> line in a tag object.
</p>
943 <dt class=
"hdlist1"><code>missingTaggerEntry
</code></dt>
945 <p>(INFO) Missing
<code>tagger
</code> line in a tag object.
</p>
947 <dt class=
"hdlist1"><code>missingTree
</code></dt>
949 <p>(ERROR) Missing
<code>tree
</code> line in a commit object.
</p>
951 <dt class=
"hdlist1"><code>missingType
</code></dt>
953 <p>(ERROR) Invalid type value on the
<code>type
</code> line in a tag object.
</p>
955 <dt class=
"hdlist1"><code>missingTypeEntry
</code></dt>
957 <p>(ERROR) Missing
<code>type
</code> line in a tag object.
</p>
959 <dt class=
"hdlist1"><code>multipleAuthors
</code></dt>
961 <p>(ERROR) Multiple author lines found in a commit.
</p>
963 <dt class=
"hdlist1"><code>nulInCommit
</code></dt>
965 <p>(WARN) Found a NUL byte in the commit object body.
</p>
967 <dt class=
"hdlist1"><code>nulInHeader
</code></dt>
969 <p>(FATAL) NUL byte exists in the object header.
</p>
971 <dt class=
"hdlist1"><code>nullSha1
</code></dt>
973 <p>(WARN) Tree contains entries pointing to a null sha1.
</p>
975 <dt class=
"hdlist1"><code>treeNotSorted
</code></dt>
977 <p>(ERROR) A tree is not properly sorted.
</p>
979 <dt class=
"hdlist1"><code>unknownType
</code></dt>
981 <p>(ERROR) Found an unknown object type.
</p>
983 <dt class=
"hdlist1"><code>unterminatedHeader
</code></dt>
985 <p>(FATAL) Missing end-of-line in the object header.
</p>
987 <dt class=
"hdlist1"><code>zeroPaddedDate
</code></dt>
989 <p>(ERROR) Found a zero padded date in an author/committer line.
</p>
991 <dt class=
"hdlist1"><code>zeroPaddedFilemode
</code></dt>
993 <p>(WARN) Found a zero padded filemode in a tree.
</p>
1000 <h2 id=
"_environment_variables">Environment Variables
</h2>
1001 <div class=
"sectionbody">
1004 <dt class=
"hdlist1">GIT_OBJECT_DIRECTORY
</dt>
1006 <p>used to specify the object database root (usually $GIT_DIR/objects)
</p>
1008 <dt class=
"hdlist1">GIT_INDEX_FILE
</dt>
1010 <p>used to specify the index file of the index
</p>
1012 <dt class=
"hdlist1">GIT_ALTERNATE_OBJECT_DIRECTORIES
</dt>
1014 <p>used to specify additional object database roots (usually unset)
</p>
1021 <h2 id=
"_git">GIT
</h2>
1022 <div class=
"sectionbody">
1023 <div class=
"paragraph">
1024 <p>Part of the
<a href=
"git.html">git(
1)
</a> suite
</p>
1030 <div id=
"footer-text">
1031 Last updated
2023-
10-
23 14:
43:
46 -
0700