'\" t
.\"     Title: git-pack-objects
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
.\"      Date: 2025-10-28
.\"    Manual: Git Manual
.\"    Source: Git 2.51.2.560.g57da342c78
.\"  Language: English
.\"
.TH "GIT\-PACK\-OBJECTS" "1" "2025-10-28" "Git 2\&.51\&.2\&.560\&.g57da34" "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-pack-objects \- Create a packed archive of objects
.SH "SYNOPSIS"
.sp
.nf
\fIgit pack\-objects\fR [\-q | \-\-progress | \-\-all\-progress] [\-\-all\-progress\-implied]
                   [\-\-no\-reuse\-delta] [\-\-delta\-base\-offset] [\-\-non\-empty]
                   [\-\-local] [\-\-incremental] [\-\-window=<n>] [\-\-depth=<n>]
                   [\-\-revs [\-\-unpacked | \-\-all]] [\-\-keep\-pack=<pack\-name>]
                   [\-\-cruft] [\-\-cruft\-expiration=<time>]
                   [\-\-stdout [\-\-filter=<filter\-spec>] | <base\-name>]
                   [\-\-shallow] [\-\-keep\-true\-parents] [\-\-[no\-]sparse]
                   [\-\-name\-hash\-version=<n>] [\-\-path\-walk] < <object\-list>
.fi
.SH "DESCRIPTION"
.sp
Reads list of objects from the standard input, and writes either one or more packed archives with the specified base\-name to disk, or a packed archive to the standard output\&.
.sp
A packed archive is an efficient way to transfer a set of objects between two repositories as well as an access efficient archival format\&. In a packed archive, an object is either stored as a compressed whole or as a difference from some other object\&. The latter is often called a delta\&.
.sp
The packed archive format (\&.pack) is designed to be self\-contained so that it can be unpacked without any further information\&. Therefore, each object that a delta depends upon must be present within the pack\&.
.sp
A pack index file (\&.idx) is generated for fast, random access to the objects in the pack\&. Placing both the index file (\&.idx) and the packed archive (\&.pack) in the pack/ subdirectory of $GIT_OBJECT_DIRECTORY (or any of the directories on $GIT_ALTERNATE_OBJECT_DIRECTORIES) enables Git to read from the pack archive\&.
.sp
The \fIgit unpack\-objects\fR command can read the packed archive and expand the objects contained in the pack into "one\-file one\-object" format; this is typically done by the smart\-pull commands when a pack is created on\-the\-fly for efficient network transport by their peers\&.
.SH "OPTIONS"
.PP
base\-name
.RS 4
Write into pairs of files (\&.pack and \&.idx), using <base\-name> to determine the name of the created file\&. When this option is used, the two files in a pair are written in <base\-name>\-<SHA\-1>\&.{pack,idx} files\&. <SHA\-1> is a hash based on the pack content and is written to the standard output of the command\&.
.RE
.PP
\-\-stdout
.RS 4
Write the pack contents (what would have been written to \&.pack file) out to the standard output\&.
.RE
.PP
\-\-revs
.RS 4
Read the revision arguments from the standard input, instead of individual object names\&. The revision arguments are processed the same way as
\fIgit rev\-list\fR
with the
\fB\-\-objects\fR
flag uses its
\fBcommit\fR
arguments to build the list of objects it outputs\&. The objects on the resulting list are packed\&. Besides revisions,
\fB\-\-not\fR
or
\fB\-\-shallow\fR
\fI<SHA\-1>\fR
lines are also accepted\&.
.RE
.PP
\-\-unpacked
.RS 4
This implies
\fB\-\-revs\fR\&. When processing the list of revision arguments read from the standard input, limit the objects packed to those that are not already packed\&.
.RE
.PP
\-\-all
.RS 4
This implies
\fB\-\-revs\fR\&. In addition to the list of revision arguments read from the standard input, pretend as if all refs under
\fBrefs/\fR
are specified to be included\&.
.RE
.PP
\-\-include\-tag
.RS 4
Include unasked\-for annotated tags if the object they reference was included in the resulting packfile\&. This can be useful to send new tags to native Git clients\&.
.RE
.PP
\-\-stdin\-packs[=<mode>]
.RS 4
Read the basenames of packfiles (e\&.g\&.,
\fBpack\-1234abcd\&.pack\fR) from the standard input, instead of object names or revision arguments\&. The resulting pack contains all objects listed in the included packs (those not beginning with
\fB^\fR), excluding any objects listed in the excluded packs (beginning with
\fB^\fR)\&.
.sp
When
\fBmode\fR
is "follow", objects from packs not listed on stdin receive special treatment\&. Objects within unlisted packs will be included if those objects are (1) reachable from the included packs, and (2) not found in any excluded packs\&. This mode is useful, for example, to resurrect once\-unreachable objects found in cruft packs to generate packs which are closed under reachability up to the boundary set by the excluded packs\&.
.sp
Incompatible with
\fB\-\-revs\fR, or options that imply
\fB\-\-revs\fR
(such as
\fB\-\-all\fR), with the exception of
\fB\-\-unpacked\fR, which is compatible\&.
.RE
.PP
\-\-cruft
.RS 4
Packs unreachable objects into a separate "cruft" pack, denoted by the existence of a \&.\fBmtimes\fR
file\&. Typically used by
\fBgit\fR
\fBrepack\fR
\fB\-\-cruft\fR\&. Callers provide a list of pack names and indicate which packs will remain in the repository, along with which packs will be deleted (indicated by the
\fB\-\fR
prefix)\&. The contents of the cruft pack are all objects not contained in the surviving packs which have not exceeded the grace period (see
\fB\-\-cruft\-expiration\fR
below), or which have exceeded the grace period, but are reachable from an other object which hasn\(cqt\&.
.sp
When the input lists a pack containing all reachable objects (and lists all other packs as pending deletion), the corresponding cruft pack will contain all unreachable objects (with mtime newer than the
\fB\-\-cruft\-expiration\fR) along with any unreachable objects whose mtime is older than the
\fB\-\-cruft\-expiration\fR, but are reachable from an unreachable object whose mtime is newer than the
\fB\-\-cruft\-expiration\fR)\&.
.sp
Incompatible with
\fB\-\-unpack\-unreachable\fR,
\fB\-\-keep\-unreachable\fR,
\fB\-\-pack\-loose\-unreachable\fR,
\fB\-\-stdin\-packs\fR, as well as any other options which imply
\fB\-\-revs\fR\&.
.RE
.PP
\-\-cruft\-expiration=<approxidate>
.RS 4
If specified, objects are eliminated from the cruft pack if they have an mtime older than
\fI<approxidate>\fR\&. If unspecified (and given
\fB\-\-cruft\fR), then no objects are eliminated\&.
.RE
.PP
\-\-window=<n>, \-\-depth=<n>
.RS 4
These two options affect how the objects contained in the pack are stored using delta compression\&. The objects are first internally sorted by type, size and optionally names and compared against the other objects within \-\-window to see if using delta compression saves space\&. \-\-depth limits the maximum delta depth; making it too deep affects the performance on the unpacker side, because delta data needs to be applied that many times to get to the necessary object\&.
.sp
The default value for \-\-window is 10 and \-\-depth is 50\&. The maximum depth is 4095\&.
.RE
.PP
\-\-window\-memory=<n>
.RS 4
This option provides an additional limit on top of
\fB\-\-window\fR; the window size will dynamically scale down so as to not take up more than
\fI<n>\fR
bytes in memory\&. This is useful in repositories with a mix of large and small objects to not run out of memory with a large window, but still be able to take advantage of the large window for the smaller objects\&. The size can be suffixed with "k", "m", or "g"\&.
\fB\-\-window\-memory=0\fR
makes memory usage unlimited\&. The default is taken from the
\fBpack\&.windowMemory\fR
configuration variable\&.
.RE
.PP
\-\-max\-pack\-size=<n>
.RS 4
In unusual scenarios, you may not be able to create files larger than a certain size on your filesystem, and this option can be used to tell the command to split the output packfile into multiple independent packfiles, each not larger than the given size\&. The size can be suffixed with "k", "m", or "g"\&. The minimum size allowed is limited to 1 MiB\&. The default is unlimited, unless the config variable
\fBpack\&.packSizeLimit\fR
is set\&. Note that this option may result in a larger and slower repository; see the discussion in
\fBpack\&.packSizeLimit\fR\&.
.RE
.PP
\-\-honor\-pack\-keep
.RS 4
This flag causes an object already in a local pack that has a \&.keep file to be ignored, even if it would have otherwise been packed\&.
.RE
.PP
\-\-keep\-pack=<pack\-name>
.RS 4
This flag causes an object already in the given pack to be ignored, even if it would have otherwise been packed\&.
\fI<pack\-name>\fR
is the pack file name without leading directory (e\&.g\&.
\fBpack\-123\&.pack\fR)\&. The option could be specified multiple times to keep multiple packs\&.
.RE
.PP
\-\-incremental
.RS 4
This flag causes an object already in a pack to be ignored even if it would have otherwise been packed\&.
.RE
.PP
\-\-local
.RS 4
This flag causes an object that is borrowed from an alternate object store to be ignored even if it would have otherwise been packed\&.
.RE
.PP
\-\-non\-empty
.RS 4
Only create a packed archive if it would contain at least one object\&.
.RE
.PP
\-\-progress
.RS 4
Progress status is reported on the standard error stream by default when it is attached to a terminal, unless \-q is specified\&. This flag forces progress status even if the standard error stream is not directed to a terminal\&.
.RE
.PP
\-\-all\-progress
.RS 4
When \-\-stdout is specified then progress report is displayed during the object count and compression phases but inhibited during the write\-out phase\&. The reason is that in some cases the output stream is directly linked to another command which may wish to display progress status of its own as it processes incoming pack data\&. This flag is like \-\-progress except that it forces progress report for the write\-out phase as well even if \-\-stdout is used\&.
.RE
.PP
\-\-all\-progress\-implied
.RS 4
This is used to imply \-\-all\-progress whenever progress display is activated\&. Unlike \-\-all\-progress this flag doesn\(cqt actually force any progress display by itself\&.
.RE
.PP
\-q
.RS 4
This flag makes the command not to report its progress on the standard error stream\&.
.RE
.PP
\-\-no\-reuse\-delta
.RS 4
When creating a packed archive in a repository that has existing packs, the command reuses existing deltas\&. This sometimes results in a slightly suboptimal pack\&. This flag tells the command not to reuse existing deltas but compute them from scratch\&.
.RE
.PP
\-\-no\-reuse\-object
.RS 4
This flag tells the command not to reuse existing object data at all, including non deltified object, forcing recompression of everything\&. This implies \-\-no\-reuse\-delta\&. Useful only in the obscure case where wholesale enforcement of a different compression level on the packed data is desired\&.
.RE
.PP
\-\-compression=<n>
.RS 4
Specifies compression level for newly\-compressed data in the generated pack\&. If not specified, pack compression level is determined first by pack\&.compression, then by core\&.compression, and defaults to \-1, the zlib default, if neither is set\&. Add \-\-no\-reuse\-object if you want to force a uniform compression level on all data no matter the source\&.
.RE
.PP
\-\-sparse, \-\-no\-sparse
.RS 4
Toggle the "sparse" algorithm to determine which objects to include in the pack, when combined with the "\-\-revs" option\&. This algorithm only walks trees that appear in paths that introduce new objects\&. This can have significant performance benefits when computing a pack to send a small change\&. However, it is possible that extra objects are added to the pack\-file if the included commits contain certain types of direct renames\&. If this option is not included, it defaults to the value of
\fBpack\&.useSparse\fR, which is true unless otherwise specified\&.
.RE
.PP
\-\-thin
.RS 4
Create a "thin" pack by omitting the common objects between a sender and a receiver in order to reduce network transfer\&. This option only makes sense in conjunction with \-\-stdout\&.
.sp
Note: A thin pack violates the packed archive format by omitting required objects and is thus unusable by Git without making it self\-contained\&. Use
\fBgit\fR
\fBindex\-pack\fR
\fB\-\-fix\-thin\fR
(see
\fBgit-index-pack\fR(1)) to restore the self\-contained property\&.
.RE
.PP
\-\-shallow
.RS 4
Optimize a pack that will be provided to a client with a shallow repository\&. This option, combined with \-\-thin, can result in a smaller pack at the cost of speed\&.
.RE
.PP
\-\-delta\-base\-offset
.RS 4
A packed archive can express the base object of a delta as either a 20\-byte object name or as an offset in the stream, but ancient versions of Git don\(cqt understand the latter\&. By default,
\fIgit pack\-objects\fR
only uses the former format for better compatibility\&. This option allows the command to use the latter format for compactness\&. Depending on the average delta chain length, this option typically shrinks the resulting packfile by 3\-5 per\-cent\&.
.sp
Note: Porcelain commands such as
\fBgit\fR
\fBgc\fR
(see
\fBgit-gc\fR(1)),
\fBgit\fR
\fBrepack\fR
(see
\fBgit-repack\fR(1)) pass this option by default in modern Git when they put objects in your repository into pack files\&. So does
\fBgit\fR
\fBbundle\fR
(see
\fBgit-bundle\fR(1)) when it creates a bundle\&.
.RE
.PP
\-\-threads=<n>
.RS 4
Specifies the number of threads to spawn when searching for best delta matches\&. This requires that pack\-objects be compiled with pthreads otherwise this option is ignored with a warning\&. This is meant to reduce packing time on multiprocessor machines\&. The required amount of memory for the delta search window is however multiplied by the number of threads\&. Specifying 0 will cause Git to auto\-detect the number of CPU\(cqs and set the number of threads accordingly\&.
.RE
.PP
\-\-index\-version=<version>[,<offset>]
.RS 4
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\&.
.RE
.PP
\-\-keep\-true\-parents
.RS 4
With this option, parents that are hidden by grafts are packed nevertheless\&.
.RE
.PP
\-\-filter=<filter\-spec>
.RS 4
Omits certain objects (usually blobs) from the resulting packfile\&. See
\fBgit-rev-list\fR(1)
for valid
\fI<filter\-spec>\fR
forms\&.
.RE
.PP
\-\-no\-filter
.RS 4
Turns off any previous
\fB\-\-filter=\fR
argument\&.
.RE
.PP
\-\-missing=<missing\-action>
.RS 4
A debug option to help with future "partial clone" development\&. This option specifies how missing objects are handled\&.
.sp
The form
\fI\-\-missing=error\fR
requests that pack\-objects stop with an error if a missing object is encountered\&. If the repository is a partial clone, an attempt to fetch missing objects will be made before declaring them missing\&. This is the default action\&.
.sp
The form
\fI\-\-missing=allow\-any\fR
will allow object traversal to continue if a missing object is encountered\&. No fetch of a missing object will occur\&. Missing objects will silently be omitted from the results\&.
.sp
The form
\fI\-\-missing=allow\-promisor\fR
is like
\fIallow\-any\fR, but will only allow object traversal to continue for EXPECTED promisor missing objects\&. No fetch of a missing object will occur\&. An unexpected missing object will raise an error\&.
.RE
.PP
\-\-exclude\-promisor\-objects
.RS 4
Omit objects that are known to be in the promisor remote\&. (This option has the purpose of operating only on locally created objects, so that when we repack, we still maintain a distinction between locally created objects [without \&.promisor] and objects from the promisor remote [with \&.promisor]\&.) This is used with partial clone\&.
.RE
.PP
\-\-keep\-unreachable
.RS 4
Objects unreachable from the refs in packs named with \-\-unpacked= option are added to the resulting pack, in addition to the reachable objects that are not in packs marked with *\&.keep files\&. This implies
\fB\-\-revs\fR\&.
.RE
.PP
\-\-pack\-loose\-unreachable
.RS 4
Pack unreachable loose objects (and their loose counterparts removed)\&. This implies
\fB\-\-revs\fR\&.
.RE
.PP
\-\-unpack\-unreachable
.RS 4
Keep unreachable objects in loose form\&. This implies
\fB\-\-revs\fR\&.
.RE
.PP
\-\-delta\-islands
.RS 4
Restrict delta matches based on "islands"\&. See DELTA ISLANDS below\&.
.RE
.PP
\-\-name\-hash\-version=<n>
.RS 4
While performing delta compression, Git groups objects that may be similar based on heuristics using the path to that object\&. While grouping objects by an exact path match is good for paths with many versions, there are benefits for finding delta pairs across different full paths\&. Git collects objects by type and then by a "name hash" of the path and then by size, hoping to group objects that will compress well together\&.
.sp
The default name hash version is
\fB1\fR, which prioritizes hash locality by considering the final bytes of the path as providing the maximum magnitude to the hash function\&. This version excels at distinguishing short paths and finding renames across directories\&. However, the hash function depends primarily on the final 16 bytes of the path\&. If there are many paths in the repo that have the same final 16 bytes and differ only by parent directory, then this name\-hash may lead to too many collisions and cause poor results\&. At the moment, this version is required when writing reachability bitmap files with
\fB\-\-write\-bitmap\-index\fR\&.
.sp
The name hash version
\fB2\fR
has similar locality features as version
\fB1\fR, except it considers each path component separately and overlays the hashes with a shift\&. This still prioritizes the final bytes of the path, but also "salts" the lower bits of the hash using the parent directory names\&. This method allows for some of the locality benefits of version
\fB1\fR
while breaking most of the collisions from a similarly\-named file appearing in many different directories\&. At the moment, this version is not allowed when writing reachability bitmap files with
\fB\-\-write\-bitmap\-index\fR
and it will be automatically changed to version
\fB1\fR\&.
.RE
.PP
\-\-path\-walk
.RS 4
Perform compression by first organizing objects by path, then a second pass that compresses across paths as normal\&. This has the potential to improve delta compression especially in the presence of filenames that cause collisions in Git\(cqs default name\-hash algorithm\&.
.sp
Incompatible with
\fB\-\-delta\-islands\fR,
\fB\-\-shallow\fR, or
\fB\-\-filter\fR\&. The
\fB\-\-use\-bitmap\-index\fR
option will be ignored in the presence of
\fB\-\-path\-walk\&.\fR
.RE
.SH "DELTA ISLANDS"
.sp
When possible, \fBpack\-objects\fR tries to reuse existing on\-disk deltas to avoid having to search for new ones on the fly\&. This is an important optimization for serving fetches, because it means the server can avoid inflating most objects at all and just send the bytes directly from disk\&. This optimization can\(cqt work when an object is stored as a delta against a base which the receiver does not have (and which we are not already sending)\&. In that case the server "breaks" the delta and has to find a new one, which has a high CPU cost\&. Therefore it\(cqs important for performance that the set of objects in on\-disk delta relationships match what a client would fetch\&.
.sp
In a normal repository, this tends to work automatically\&. The objects are mostly reachable from the branches and tags, and that\(cqs what clients fetch\&. Any deltas we find on the server are likely to be between objects the client has or will have\&.
.sp
But in some repository setups, you may have several related but separate groups of ref tips, with clients tending to fetch those groups independently\&. For example, imagine that you are hosting several "forks" of a repository in a single shared object store, and letting clients view them as separate repositories through \fBGIT_NAMESPACE\fR or separate repos using the alternates mechanism\&. A naive repack may find that the optimal delta for an object is against a base that is only found in another fork\&. But when a client fetches, they will not have the base object, and we\(cqll have to find a new delta on the fly\&.
.sp
A similar situation may exist if you have many refs outside of \fBrefs/heads/\fR and \fBrefs/tags/\fR that point to related objects (e\&.g\&., \fBrefs/pull\fR or \fBrefs/changes\fR used by some hosting providers)\&. By default, clients fetch only heads and tags, and deltas against objects found only in those other groups cannot be sent as\-is\&.
.sp
Delta islands solve this problem by allowing you to group your refs into distinct "islands"\&. Pack\-objects computes which objects are reachable from which islands, and refuses to make a delta from an object \fBA\fR against a base which is not present in all of \fBA\fR\*(Aqs islands\&. This results in slightly larger packs (because we miss some delta opportunities), but guarantees that a fetch of one island will not have to recompute deltas on the fly due to crossing island boundaries\&.
.sp
When repacking with delta islands the delta window tends to get clogged with candidates that are forbidden by the config\&. Repacking with a big \-\-window helps (and doesn\(cqt take as long as it otherwise might because we can reject some object pairs based on islands before doing any computation on the content)\&.
.sp
Islands are configured via the \fBpack\&.island\fR option, which can be specified multiple times\&. Each value is a left\-anchored regular expressions matching refnames\&. For example:
.sp
.if n \{\
.RS 4
.\}
.nf
[pack]
island = refs/heads/
island = refs/tags/
.fi
.if n \{\
.RE
.\}
.sp
puts heads and tags into an island (whose name is the empty string; see below for more on naming)\&. Any refs which do not match those regular expressions (e\&.g\&., \fBrefs/pull/123\fR) is not in any island\&. Any object which is reachable only from \fBrefs/pull/\fR (but not heads or tags) is therefore not a candidate to be used as a base for \fBrefs/heads/\fR\&.
.sp
Refs are grouped into islands based on their "names", and two regexes that produce the same name are considered to be in the same island\&. The names are computed from the regexes by concatenating any capture groups from the regex, with a \fI\-\fR dash in between\&. (And if there are no capture groups, then the name is the empty string, as in the above example\&.) This allows you to create arbitrary numbers of islands\&. Only up to 14 such capture groups are supported though\&.
.sp
For example, imagine you store the refs for each fork in \fBrefs/virtual/ID\fR, where \fBID\fR is a numeric identifier\&. You might then configure:
.sp
.if n \{\
.RS 4
.\}
.nf
[pack]
island = refs/virtual/([0\-9]+)/heads/
island = refs/virtual/([0\-9]+)/tags/
island = refs/virtual/([0\-9]+)/(pull)/
.fi
.if n \{\
.RE
.\}
.sp
That puts the heads and tags for each fork in their own island (named "1234" or similar), and the pull refs for each go into their own "1234\-pull"\&.
.sp
Note that we pick a single island for each regex to go into, using "last one wins" ordering (which allows repo\-specific config to take precedence over user\-wide config, and so forth)\&.
.SH "CONFIGURATION"
.sp
Various configuration variables affect packing, see \fBgit-config\fR(1) (search for "pack" and "delta")\&.
.sp
Notably, delta compression is not used on objects larger than the \fBcore\&.bigFileThreshold\fR configuration variable and on files with the attribute \fBdelta\fR set to false\&.
.SH "SEE ALSO"
.sp
\fBgit-rev-list\fR(1) \fBgit-repack\fR(1) \fBgit-prune-packed\fR(1)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
