]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-fsck-objects.txt
Documentation: Spelling fixes
[thirdparty/git.git] / Documentation / git-fsck-objects.txt
CommitLineData
215a7ad1
JH
1git-fsck-objects(1)
2===================
2cf565c5
DG
3
4NAME
5----
215a7ad1 6git-fsck-objects - Verifies the connectivity and validity of the objects in the database
2cf565c5
DG
7
8
9SYNOPSIS
10--------
353ce815
JF
11[verse]
12'git-fsck-objects' [--tags] [--root] [--unreachable] [--cache]
7aaa715d 13 [--full] [--strict] [<object>*]
2cf565c5
DG
14
15DESCRIPTION
16-----------
17Verifies the connectivity and validity of the objects in the database.
18
19OPTIONS
20-------
21<object>::
22 An object to treat as the head of an unreachability trace.
df8baa42
JF
23+
24If no objects are given, git-fsck-objects defaults to using the
25index file and all SHA1 references in .git/refs/* as heads.
6f97a894 26
2cf565c5
DG
27--unreachable::
28 Print out objects that exist but that aren't readable from any
6f97a894 29 of the reference nodes.
2cf565c5
DG
30
31--root::
32 Report root nodes.
33
34--tags::
35 Report tags.
36
37--cache::
5f3aa197 38 Consider any object recorded in the index also as a head node for
2cf565c5
DG
39 an unreachability trace.
40
8a498a05
JH
41--full::
42 Check not just objects in GIT_OBJECT_DIRECTORY
2c6e4771 43 ($GIT_DIR/objects), but also the ones found in alternate
7aaa715d
JH
44 object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES
45 or $GIT_DIR/objects/info/alternates,
72e9340c 46 and in packed git archives found in $GIT_DIR/objects/pack
8a498a05 47 and corresponding pack subdirectories in alternate
7aaa715d 48 object pools.
8a498a05 49
fb6a3d86
JH
50--strict::
51 Enable more strict checking, namely to catch a file mode
52 recorded with g+w bit set, which was created by older
72e9340c
CM
53 versions of git. Existing repositories, including the
54 Linux kernel, git itself, and sparse repository have old
fb6a3d86
JH
55 objects that triggers this check, but it is recommended
56 to check new projects with this flag.
57
2cf565c5
DG
58It tests SHA1 and general object sanity, and it does full tracking of
59the resulting reachability and everything else. It prints out any
60corruption it finds (missing or bad objects), and if you use the
61'--unreachable' flag it will also print out objects that exist but
62that aren't readable from any of the specified head nodes.
63
64So for example
65
27dedf0c 66 git-fsck-objects --unreachable HEAD $(cat .git/refs/heads/*)
2cf565c5
DG
67
68will do quite a _lot_ of verification on the tree. There are a few
69extra validity tests to be added (make sure that tree objects are
215a7ad1 70sorted properly etc), but on the whole if "git-fsck-objects" is happy, you
2cf565c5
DG
71do have a valid tree.
72
73Any corrupt objects you will have to find in backups or other archives
abda1ef5 74(i.e., you can just remove them and do an "rsync" with some other site in
2cf565c5
DG
75the hopes that somebody else has the object you have corrupted).
76
77Of course, "valid tree" doesn't mean that it wasn't generated by some
72e9340c 78evil person, and the end result might be crap. git is a revision
2cf565c5
DG
79tracking system, not a quality assurance system ;)
80
81Extracted Diagnostics
82---------------------
83
84expect dangling commits - potential heads - due to lack of head information::
85 You haven't specified any nodes as heads so it won't be
86 possible to differentiate between un-parented commits and
87 root nodes.
88
89missing sha1 directory '<dir>'::
90 The directory holding the sha1 objects is missing.
91
92unreachable <type> <object>::
93 The <type> object <object>, isn't actually referred to directly
94 or indirectly in any of the trees or commits seen. This can
95 mean that there's another root node that you're not specifying
96 or that the tree is corrupt. If you haven't missed a root node
97 then you might as well delete unreachable nodes since they
98 can't be used.
99
100missing <type> <object>::
101 The <type> object <object>, is referred to but isn't present in
102 the database.
103
104dangling <type> <object>::
105 The <type> object <object>, is present in the database but never
106 'directly' used. A dangling commit could be a root node.
107
215a7ad1 108warning: git-fsck-objects: tree <tree> has full pathnames in it::
2cf565c5
DG
109 And it shouldn't...
110
111sha1 mismatch <object>::
112 The database has an object who's sha1 doesn't match the
113 database value.
114 This indicates a serious data integrity problem.
2cf565c5
DG
115
116Environment Variables
117---------------------
118
119GIT_OBJECT_DIRECTORY::
2c6e4771 120 used to specify the object database root (usually $GIT_DIR/objects)
2cf565c5
DG
121
122GIT_INDEX_FILE::
5f3aa197 123 used to specify the index file of the index
2cf565c5 124
df8baa42 125GIT_ALTERNATE_OBJECT_DIRECTORIES::
2c6e4771 126 used to specify additional object database roots (usually unset)
2cf565c5
DG
127
128Author
129------
130Written by Linus Torvalds <torvalds@osdl.org>
131
132Documentation
133--------------
134Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
135
136GIT
137---
a7154e91 138Part of the gitlink:git[7] suite
2cf565c5 139