man pages section 1: User Commands

Exit Print View

Updated: July 2014
 
 

git-fsck (1)

Name

git-fsck - Verifies the connectivity and validity of the objects in the database

Synopsis

git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
[--[no-]full] [--strict] [--verbose] [--lost-found]
[--[no-]progress] [<object>*]

Description




Git Manual                                            GIT-FSCK(1)



NAME
     git-fsck - Verifies the connectivity and validity of the
     objects in the database

SYNOPSIS
     git fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]
              [--[no-]full] [--strict] [--verbose] [--lost-found]
              [--[no-]progress] [<object>*]


DESCRIPTION
     Verifies the connectivity and validity of the objects in the
     database.

OPTIONS
     <object>
         An object to treat as the head of an unreachability
         trace.

         If no objects are given, git fsck defaults to using the
         index file, all SHA1 references in .git/refs/*, and all
         reflogs (unless --no-reflogs is given) as heads.

     --unreachable
         Print out objects that exist but that aren't reachable
         from any of the reference nodes.

     --root
         Report root nodes.

     --tags
         Report tags.

     --cache
         Consider any object recorded in the index also as a head
         node for an unreachability trace.

     --no-reflogs
         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't, but are still in that corresponding reflog.

     --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. This is now default; you can turn it off with
         --no-full.



Git 1.7.9.2          Last change: 02/22/2012                    1






Git Manual                                            GIT-FSCK(1)



     --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.

     --verbose
         Be chatty.

     --lost-found
         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.

     --progress, --no-progress
         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.

DISCUSSION
     git-fsck 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 --unreachable flag it will also
     print out objects that exist but that aren't reachable from
     any of the specified head nodes (or the default set, as
     mentioned above).

     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).

EXTRACTED DIAGNOSTICS
     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.

     missing sha1 directory <dir>
         The directory holding the sha1 objects is missing.

     unreachable <type> <object>
         The <type> object <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



Git 1.7.9.2          Last change: 02/22/2012                    2






Git Manual                                            GIT-FSCK(1)



         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.

     missing <type> <object>
         The <type> object <object>, is referred to but isn't
         present in the database.

     dangling <type> <object>
         The <type> object <object>, is present in the database
         but never directly used. A dangling commit could be a
         root node.

     sha1 mismatch <object>
         The database has an object who's sha1 doesn't match the
         database value. This indicates a serious data integrity
         problem.

ENVIRONMENT VARIABLES
     GIT_OBJECT_DIRECTORY
         used to specify the object database root (usually
         $GIT_DIR/objects)

     GIT_INDEX_FILE
         used to specify the index file of the index

     GIT_ALTERNATE_OBJECT_DIRECTORIES
         used to specify additional object database roots
         (usually unset)

GIT
     Part of the git(1) suite



ATTRIBUTES
     See attributes(5) for descriptions of the following
     attributes:

     +---------------+--------------------------+
     |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
     +---------------+--------------------------+
     |Availability   | developer/versioning/git |
     +---------------+--------------------------+
     |Stability      | Uncommitted              |
     +---------------+--------------------------+
NOTES
     This software was built from source available at
     https://java.net/projects/solaris-userland.  The original
     community source was downloaded from  http://git-
     core.googlecode.com/files/git-1.7.9.2.tar.gz




Git 1.7.9.2          Last change: 02/22/2012                    3






Git Manual                                            GIT-FSCK(1)



     Further information about this software can be found on the
     open source community website at http://git-scm.com/.





















































Git 1.7.9.2          Last change: 02/22/2012                    4