Autogenerated HTML docs for v1.6.5
[git/jnareb-git.git] / git-fsck.html
blob4128a4632eabc982107e7b3a8f52e6dab70e22c3
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 8.2.5" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1, h2, h3 {
48 border-bottom: 2px solid silver;
50 h2 {
51 padding-top: 0.5em;
53 h3 {
54 float: left;
56 h3 + * {
57 clear: left;
60 div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
65 hr {
66 border: 1px solid silver;
69 p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
74 pre {
75 padding: 0;
76 margin: 0;
79 span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
83 font-size: 1.1em;
85 span#email {
87 span#revision {
88 font-family: sans-serif;
91 div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
98 div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
102 div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
107 div#preamble,
108 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110 div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
115 div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
120 div.content { /* Block element content. */
121 padding: 0;
124 /* Block element titles. */
125 div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
132 div.title + * {
133 margin-top: 0;
136 td div.title:first-child {
137 margin-top: 0.0em;
139 div.content div.title:first-child {
140 margin-top: 0.0em;
142 div.content + div.title {
143 margin-top: 0.0em;
146 div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
152 div.listingblock {
153 margin-right: 0%;
155 div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
161 div.quoteblock > div.content {
162 padding-left: 2.0em;
165 div.attribution {
166 text-align: right;
168 div.verseblock + div.attribution {
169 text-align: left;
172 div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
180 div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
185 div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
190 div.verseblock div.content {
191 white-space: pre;
194 div.imageblock div.content { padding-left: 0; }
195 div.imageblock img { border: 1px solid silver; }
196 span.image img { border-style: none; }
198 dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
202 dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
207 dd > *:first-child {
208 margin-top: 0;
211 ul, ol {
212 list-style-position: outside;
214 div.olist2 ol {
215 list-style-type: lower-alpha;
218 div.tableblock > table {
219 border: 3px solid #527bbd;
221 thead {
222 font-family: sans-serif;
223 font-weight: bold;
225 tfoot {
226 font-weight: bold;
229 div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
233 div.hlist td {
234 padding-bottom: 5px;
236 td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
241 td.hlist2 {
242 vertical-align: top;
245 @media print {
246 div#footer-badges { display: none; }
249 div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
258 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
262 div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
266 div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
270 div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
274 include1::./stylesheets/xhtml11-manpage.css[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
282 div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
289 div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
295 div.quoteblock-content {
296 padding-left: 2.0em;
299 div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc a:visited { color: blue; }
306 </style>
307 <title>git-fsck(1)</title>
308 </head>
309 <body>
310 <div id="header">
311 <h1>
312 git-fsck(1) Manual Page
313 </h1>
314 <h2>NAME</h2>
315 <div class="sectionbody">
316 <p>git-fsck -
317 Verifies the connectivity and validity of the objects in the database
318 </p>
319 </div>
320 </div>
321 <h2>SYNOPSIS</h2>
322 <div class="sectionbody">
323 <div class="verseblock">
324 <div class="content"><em>git fsck</em> [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
325 [--full] [--strict] [--verbose] [--lost-found] [&lt;object&gt;*]</div></div>
326 </div>
327 <h2 id="_description">DESCRIPTION</h2>
328 <div class="sectionbody">
329 <div class="para"><p>Verifies the connectivity and validity of the objects in the database.</p></div>
330 </div>
331 <h2 id="_options">OPTIONS</h2>
332 <div class="sectionbody">
333 <div class="vlist"><dl>
334 <dt>
335 &lt;object&gt;
336 </dt>
337 <dd>
339 An object to treat as the head of an unreachability trace.
340 </p>
341 <div class="para"><p>If no objects are given, <em>git-fsck</em> defaults to using the
342 index file, all SHA1 references in .git/refs/*, and all reflogs (unless
343 --no-reflogs is given) as heads.</p></div>
344 </dd>
345 <dt>
346 --unreachable
347 </dt>
348 <dd>
350 Print out objects that exist but that aren't readable from any
351 of the reference nodes.
352 </p>
353 </dd>
354 <dt>
355 --root
356 </dt>
357 <dd>
359 Report root nodes.
360 </p>
361 </dd>
362 <dt>
363 --tags
364 </dt>
365 <dd>
367 Report tags.
368 </p>
369 </dd>
370 <dt>
371 --cache
372 </dt>
373 <dd>
375 Consider any object recorded in the index also as a head node for
376 an unreachability trace.
377 </p>
378 </dd>
379 <dt>
380 --no-reflogs
381 </dt>
382 <dd>
384 Do not consider commits that are referenced only by an
385 entry in a reflog to be reachable. This option is meant
386 only to search for commits that used to be in a ref, but
387 now aren't, but are still in that corresponding reflog.
388 </p>
389 </dd>
390 <dt>
391 --full
392 </dt>
393 <dd>
395 Check not just objects in GIT_OBJECT_DIRECTORY
396 ($GIT_DIR/objects), but also the ones found in alternate
397 object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES
398 or $GIT_DIR/objects/info/alternates,
399 and in packed git archives found in $GIT_DIR/objects/pack
400 and corresponding pack subdirectories in alternate
401 object pools.
402 </p>
403 </dd>
404 <dt>
405 --strict
406 </dt>
407 <dd>
409 Enable more strict checking, namely to catch a file mode
410 recorded with g+w bit set, which was created by older
411 versions of git. Existing repositories, including the
412 Linux kernel, git itself, and sparse repository have old
413 objects that triggers this check, but it is recommended
414 to check new projects with this flag.
415 </p>
416 </dd>
417 <dt>
418 --verbose
419 </dt>
420 <dd>
422 Be chatty.
423 </p>
424 </dd>
425 <dt>
426 --lost-found
427 </dt>
428 <dd>
430 Write dangling objects into .git/lost-found/commit/ or
431 .git/lost-found/other/, depending on type. If the object is
432 a blob, the contents are written into the file, rather than
433 its object name.
434 </p>
435 </dd>
436 </dl></div>
437 <div class="para"><p>It tests SHA1 and general object sanity, and it does full tracking of
438 the resulting reachability and everything else. It prints out any
439 corruption it finds (missing or bad objects), and if you use the
440 <em>--unreachable</em> flag it will also print out objects that exist but
441 that aren't readable from any of the specified head nodes.</p></div>
442 <div class="para"><p>So for example</p></div>
443 <div class="literalblock">
444 <div class="content">
445 <pre><tt>git fsck --unreachable HEAD \
446 $(git for-each-ref --format="%(objectname)" refs/heads)</tt></pre>
447 </div></div>
448 <div class="para"><p>will do quite a _lot_ of verification on the tree. There are a few
449 extra validity tests to be added (make sure that tree objects are
450 sorted properly etc), but on the whole if <em>git-fsck</em> is happy, you
451 do have a valid tree.</p></div>
452 <div class="para"><p>Any corrupt objects you will have to find in backups or other archives
453 (i.e., you can just remove them and do an <em>rsync</em> with some other site in
454 the hopes that somebody else has the object you have corrupted).</p></div>
455 <div class="para"><p>Of course, "valid tree" doesn't mean that it wasn't generated by some
456 evil person, and the end result might be crap. git is a revision
457 tracking system, not a quality assurance system ;)</p></div>
458 </div>
459 <h2 id="_extracted_diagnostics">Extracted Diagnostics</h2>
460 <div class="sectionbody">
461 <div class="vlist"><dl>
462 <dt>
463 expect dangling commits - potential heads - due to lack of head information
464 </dt>
465 <dd>
467 You haven't specified any nodes as heads so it won't be
468 possible to differentiate between un-parented commits and
469 root nodes.
470 </p>
471 </dd>
472 <dt>
473 missing sha1 directory <em>&lt;dir&gt;</em>
474 </dt>
475 <dd>
477 The directory holding the sha1 objects is missing.
478 </p>
479 </dd>
480 <dt>
481 unreachable &lt;type&gt; &lt;object&gt;
482 </dt>
483 <dd>
485 The &lt;type&gt; object &lt;object&gt;, isn't actually referred to directly
486 or indirectly in any of the trees or commits seen. This can
487 mean that there's another root node that you're not specifying
488 or that the tree is corrupt. If you haven't missed a root node
489 then you might as well delete unreachable nodes since they
490 can't be used.
491 </p>
492 </dd>
493 <dt>
494 missing &lt;type&gt; &lt;object&gt;
495 </dt>
496 <dd>
498 The &lt;type&gt; object &lt;object&gt;, is referred to but isn't present in
499 the database.
500 </p>
501 </dd>
502 <dt>
503 dangling &lt;type&gt; &lt;object&gt;
504 </dt>
505 <dd>
507 The &lt;type&gt; object &lt;object&gt;, is present in the database but never
508 <em>directly</em> used. A dangling commit could be a root node.
509 </p>
510 </dd>
511 <dt>
512 warning: git-fsck: tree &lt;tree&gt; has full pathnames in it
513 </dt>
514 <dd>
516 And it shouldn't&#8230;
517 </p>
518 </dd>
519 <dt>
520 sha1 mismatch &lt;object&gt;
521 </dt>
522 <dd>
524 The database has an object who's sha1 doesn't match the
525 database value.
526 This indicates a serious data integrity problem.
527 </p>
528 </dd>
529 </dl></div>
530 </div>
531 <h2 id="_environment_variables">Environment Variables</h2>
532 <div class="sectionbody">
533 <div class="vlist"><dl>
534 <dt>
535 GIT_OBJECT_DIRECTORY
536 </dt>
537 <dd>
539 used to specify the object database root (usually $GIT_DIR/objects)
540 </p>
541 </dd>
542 <dt>
543 GIT_INDEX_FILE
544 </dt>
545 <dd>
547 used to specify the index file of the index
548 </p>
549 </dd>
550 <dt>
551 GIT_ALTERNATE_OBJECT_DIRECTORIES
552 </dt>
553 <dd>
555 used to specify additional object database roots (usually unset)
556 </p>
557 </dd>
558 </dl></div>
559 </div>
560 <h2 id="_author">Author</h2>
561 <div class="sectionbody">
562 <div class="para"><p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;</p></div>
563 </div>
564 <h2 id="_documentation">Documentation</h2>
565 <div class="sectionbody">
566 <div class="para"><p>Documentation by David Greaves, Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p></div>
567 </div>
568 <h2 id="_git">GIT</h2>
569 <div class="sectionbody">
570 <div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
571 </div>
572 <div id="footer">
573 <div id="footer-text">
574 Last updated 2009-07-01 02:30:51 UTC
575 </div>
576 </div>
577 </body>
578 </html>