man pages section 1: User Commands

Exit Print View

Updated: July 2014

git-index-pack (1)


git-index-pack - Build pack index file for an existing packed archive


git index-pack [-v] [-o <index-file>] <pack-file>
git index-pack --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]


Git Manual                                      GIT-INDEX-PACK(1)

     git-index-pack - Build pack index file for an existing
     packed archive

     git index-pack [-v] [-o <index-file>] <pack-file>
     git index-pack --stdin [--fix-thin] [--keep] [-v] [-o <index-file>]

     Reads a packed archive (.pack) from the specified file, and
     builds a pack index file (.idx) for it. The packed archive
     together with the pack index can then be placed in the
     objects/pack/ directory of a git repository.

         Be verbose about what is going on, including progress

     -o <index-file>
         Write the generated pack index into the specified file.
         Without this option the name of pack index file is
         constructed from the name of packed archive file by
         replacing .pack with .idx (and the program fails if the
         name of packed archive does not end with .pack).

         When this flag is provided, the pack is read from stdin
         instead and a copy is then written to <pack-file>. If
         <pack-file> is not specified, the pack is written to
         objects/pack/ directory of the current git repository
         with a default name determined from the pack content. If
         <pack-file> is not specified consider using --keep to
         prevent a race condition between this process and git

         Fix a "thin" pack produced by git pack-objects --thin
         (see git-pack-objects(1) for details) by adding the
         excluded objects the deltified objects are based on to
         the pack. This option only makes sense in conjunction
         with --stdin.

         Before moving the index into its final destination
         create an empty .keep file for the associated pack file.
         This option is usually necessary with --stdin to prevent
         a simultaneous git repack process from deleting the
         newly constructed pack and index before refs can be
         updated to use objects contained in the pack.

Git          Last change: 02/22/2012                    1

Git Manual                                      GIT-INDEX-PACK(1)

         Like --keep create a .keep file before moving the index
         into its final destination, but rather than creating an
         empty file place <msg> followed by an LF into the .keep
         file. The <msg> message can later be searched for within
         all .keep files to locate any which have outlived their

         This is intended to be used by the test suite only. It
         allows to force the version for the generated pack
         index, and to force 64-bit index entries on objects
         located above the given offset.

         Die, if the pack contains broken objects or links.

     Once the index has been created, the list of object names is
     sorted and the SHA1 hash of that list is printed to stdout.
     If --stdin was also used then this is prefixed by either
     "pack\t", or "keep\t" if a new .keep file was successfully
     created. This is useful to remove a .keep file used as a
     lock to prevent the race with git repack mentioned above.

     Part of the git(1) suite

     See attributes(5) for descriptions of the following

     |Availability   | developer/versioning/git |
     |Stability      | Uncommitted              |
     This software was built from source available at  The original
     community source was downloaded from  http://git-

     Further information about this software can be found on the
     open source community website at

Git          Last change: 02/22/2012                    2