'\" t
.\"     Title: git-fsck
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\"      Date: 04/16/2019
.\"    Manual: Git Manual
.\"    Source: Git 2.21.0.419.gffac537e6c
.\"  Language: English
.\"
.TH "GIT\-FSCK" "1" "04/16/2019" "Git 2\&.21\&.0\&.419\&.gffac53" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-fsck \- Verifies the connectivity and validity of the objects in the database
.SH "SYNOPSIS"
.sp
.nf
\fIgit fsck\fR [\-\-tags] [\-\-root] [\-\-unreachable] [\-\-cache] [\-\-no\-reflogs]
         [\-\-[no\-]full] [\-\-strict] [\-\-verbose] [\-\-lost\-found]
         [\-\-[no\-]dangling] [\-\-[no\-]progress] [\-\-connectivity\-only]
         [\-\-[no\-]name\-objects] [<object>*]
.fi
.sp
.SH "DESCRIPTION"
.sp
Verifies the connectivity and validity of the objects in the database\&.
.SH "OPTIONS"
.PP
<object>
.RS 4
An object to treat as the head of an unreachability trace\&.
.sp
If no objects are given,
\fIgit fsck\fR
defaults to using the index file, all SHA\-1 references in
\fBrefs\fR
namespace, and all reflogs (unless \-\-no\-reflogs is given) as heads\&.
.RE
.PP
\-\-unreachable
.RS 4
Print out objects that exist but that aren\(cqt reachable from any of the reference nodes\&.
.RE
.PP
\-\-[no\-]dangling
.RS 4
Print objects that exist but that are never
\fIdirectly\fR
used (default)\&.
\fB\-\-no\-dangling\fR
can be used to omit this information from the output\&.
.RE
.PP
\-\-root
.RS 4
Report root nodes\&.
.RE
.PP
\-\-tags
.RS 4
Report tags\&.
.RE
.PP
\-\-cache
.RS 4
Consider any object recorded in the index also as a head node for an unreachability trace\&.
.RE
.PP
\-\-no\-reflogs
.RS 4
Do not consider commits that are referenced only by an entry in a reflog to be reachable\&. This option is meant only to search for commits that used to be in a ref, but now aren\(cqt, but are still in that corresponding reflog\&.
.RE
.PP
\-\-full
.RS 4
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\&. This is now default; you can turn it off with \-\-no\-full\&.
.RE
.PP
\-\-connectivity\-only
.RS 4
Check only the connectivity of reachable objects, making sure that any objects referenced by a reachable tag, commit, or tree is present\&. This speeds up the operation by avoiding reading blobs entirely (though it does still check that referenced blobs exist)\&. This will detect corruption in commits and trees, but not do any semantic checks (e\&.g\&., for format errors)\&. Corruption in blob objects will not be detected at all\&.
.sp
Unreachable tags, commits, and trees will also be accessed to find the tips of dangling segments of history\&. Use
\fB\-\-no\-dangling\fR
if you don\(cqt care about this output and want to speed it up further\&.
.RE
.PP
\-\-strict
.RS 4
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\&.
.RE
.PP
\-\-verbose
.RS 4
Be chatty\&.
.RE
.PP
\-\-lost\-found
.RS 4
Write dangling objects into \&.git/lost\-found/commit/ or \&.git/lost\-found/other/, depending on type\&. If the object is a blob, the contents are written into the file, rather than its object name\&.
.RE
.PP
\-\-name\-objects
.RS 4
When displaying names of reachable objects, in addition to the SHA\-1 also display a name that describes
\fBhow\fR
they are reachable, compatible with
\fBgit-rev-parse\fR(1), e\&.g\&.
\fBHEAD@{1234567890}~25^2:src/\fR\&.
.RE
.PP
\-\-[no\-]progress
.RS 4
Progress status is reported on the standard error stream by default when it is attached to a terminal, unless \-\-no\-progress or \-\-verbose is specified\&. \-\-progress forces progress status even if the standard error stream is not directed to a terminal\&.
.RE
.SH "DISCUSSION"
.sp
git\-fsck tests SHA\-1 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 \fB\-\-unreachable\fR flag it will also print out objects that exist but that aren\(cqt reachable from any of the specified head nodes (or the default set, as mentioned above)\&.
.sp
Any corrupt objects you will have to find in backups or other archives (i\&.e\&., you can just remove them and do an \fIrsync\fR with some other site in the hopes that somebody else has the object you have corrupted)\&.
.sp
If core\&.commitGraph is true, the commit\-graph file will also be inspected using \fIgit commit\-graph verify\fR\&. See \fBgit-commit-graph\fR(1)\&.
.SH "EXTRACTED DIAGNOSTICS"
.PP
expect dangling commits \- potential heads \- due to lack of head information
.RS 4
You haven\(cqt specified any nodes as heads so it won\(cqt be possible to differentiate between un\-parented commits and root nodes\&.
.RE
.PP
missing sha1 directory \fI<dir>\fR
.RS 4
The directory holding the sha1 objects is missing\&.
.RE
.PP
unreachable <type> <object>
.RS 4
The <type> object <object>, isn\(cqt actually referred to directly or indirectly in any of the trees or commits seen\&. This can mean that there\(cqs another root node that you\(cqre not specifying or that the tree is corrupt\&. If you haven\(cqt missed a root node then you might as well delete unreachable nodes since they can\(cqt be used\&.
.RE
.PP
missing <type> <object>
.RS 4
The <type> object <object>, is referred to but isn\(cqt present in the database\&.
.RE
.PP
dangling <type> <object>
.RS 4
The <type> object <object>, is present in the database but never
\fIdirectly\fR
used\&. A dangling commit could be a root node\&.
.RE
.PP
hash mismatch <object>
.RS 4
The database has an object whose hash doesn\(cqt match the object database value\&. This indicates a serious data integrity problem\&.
.RE
.SH "ENVIRONMENT VARIABLES"
.PP
GIT_OBJECT_DIRECTORY
.RS 4
used to specify the object database root (usually $GIT_DIR/objects)
.RE
.PP
GIT_INDEX_FILE
.RS 4
used to specify the index file of the index
.RE
.PP
GIT_ALTERNATE_OBJECT_DIRECTORIES
.RS 4
used to specify additional object database roots (usually unset)
.RE
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
