.\"Generated by db2man.xsl. Don't modify this, modify the source. .de Sh \" Subsection .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Ip \" List item .br .ie \\n(.$>=3 .ne \\$3 .el .ne 3 .IP "\\$1" \\$2 .. .TH "GIT-FSCK-OBJECTS" 1 "" "" "" .SH NAME git-fsck-objects \- Verifies the connectivity and validity of the objects in the database .SH "SYNOPSIS" .nf \fIgit\-fsck\-objects\fR [\-\-tags] [\-\-root] [\-\-unreachable] [\-\-cache] [\-\-full] [\-\-strict] [*] .fi .SH "DESCRIPTION" Verifies the connectivity and validity of the objects in the database\&. .SH "OPTIONS" .TP An object to treat as the head of an unreachability trace\&. If no objects are given, git\-fsck\-objects defaults to using the index file and all SHA1 references in \&.git/refs/* as heads\&. .TP \-\-unreachable Print out objects that exist but that aren't readable from any of the reference nodes\&. .TP \-\-root Report root nodes\&. .TP \-\-tags Report tags\&. .TP \-\-cache Consider any object recorded in the index also as a head node for an unreachability trace\&. .TP \-\-full Check not just objects in GIT_OBJECT_DIRECTORY ($GIT_DIR/objects), but also the ones found in alternate object pools listed in GIT_ALTERNATE_OBJECT_DIRECTORIES or $GIT_DIR/objects/info/alternates, and in packed git archives found in $GIT_DIR/objects/pack and corresponding pack subdirectories in alternate object pools\&. .TP \-\-strict Enable more strict checking, namely to catch a file mode recorded with g+w bit set, which was created by older versions of git\&. Existing repositories, including the Linux kernel, git itself, and sparse repository have old objects that triggers this check, but it is recommended to check new projects with this flag\&. It tests SHA1 and general object sanity, and it does full tracking of the resulting reachability and everything else\&. It prints out any corruption it finds (missing or bad objects), and if you use the \fI\-\-unreachable\fR flag it will also print out objects that exist but that aren't readable from any of the specified head nodes\&. So for example .nf git\-fsck\-objects \-\-unreachable HEAD $(cat \&.git/refs/heads/*) .fi will do quite a _lot_ of verification on the tree\&. There are a few extra validity tests to be added (make sure that tree objects are sorted properly etc), but on the whole if "git\-fsck\-objects" is happy, you do have a valid tree\&. Any corrupt objects you will have to find in backups or other archives (i\&.e\&., you can just remove them and do an "rsync" with some other site in the hopes that somebody else has the object you have corrupted)\&. Of course, "valid tree" doesn't mean that it wasn't generated by some evil person, and the end result might be crap\&. git is a revision tracking system, not a quality assurance system ;) .SH "EXTRACTED DIAGNOSTICS" .TP expect dangling commits \- potential heads \- due to lack of head information You haven't specified any nodes as heads so it won't be possible to differentiate between un\-parented commits and root nodes\&. .TP missing sha1 directory \fI\fR The directory holding the sha1 objects is missing\&. .TP unreachable The object , isn't actually referred to directly or indirectly in any of the trees or commits seen\&. This can mean that there's another root node that you're not specifying or that the tree is corrupt\&. If you haven't missed a root node then you might as well delete unreachable nodes since they can't be used\&. .TP missing The object , is referred to but isn't present in the database\&. .TP dangling The object , is present in the database but never \fIdirectly\fR used\&. A dangling commit could be a root node\&. .TP warning: git\-fsck\-objects: tree has full pathnames in it And it shouldn't... .TP sha1 mismatch The database has an object who's sha1 doesn't match the database value\&. This indicates a serious data integrity problem\&. .SH "ENVIRONMENT VARIABLES" .TP GIT_OBJECT_DIRECTORY used to specify the object database root (usually $GIT_DIR/objects) .TP GIT_INDEX_FILE used to specify the index file of the index .TP GIT_ALTERNATE_OBJECT_DIRECTORIES used to specify additional object database roots (usually unset) .SH "AUTHOR" Written by Linus Torvalds .SH "DOCUMENTATION" Documentation by David Greaves, Junio C Hamano and the git\-list \&. .SH "GIT" Part of the \fBgit\fR(7) suite