182 lines
7.6 KiB
Plaintext
182 lines
7.6 KiB
Plaintext
gc.aggressiveDepth::
|
|
The depth parameter used in the delta compression
|
|
algorithm used by 'git gc --aggressive'. This defaults
|
|
to 50, which is the default for the `--depth` option when
|
|
`--aggressive` isn't in use.
|
|
+
|
|
See the documentation for the `--depth` option in
|
|
linkgit:git-repack[1] for more details.
|
|
|
|
gc.aggressiveWindow::
|
|
The window size parameter used in the delta compression
|
|
algorithm used by 'git gc --aggressive'. This defaults
|
|
to 250, which is a much more aggressive window size than
|
|
the default `--window` of 10.
|
|
+
|
|
See the documentation for the `--window` option in
|
|
linkgit:git-repack[1] for more details.
|
|
|
|
gc.auto::
|
|
When there are approximately more than this many loose
|
|
objects in the repository, `git gc --auto` will pack them.
|
|
Some Porcelain commands use this command to perform a
|
|
light-weight garbage collection from time to time. The
|
|
default value is 6700.
|
|
+
|
|
Setting this to 0 disables not only automatic packing based on the
|
|
number of loose objects, but also any other heuristic `git gc --auto` will
|
|
otherwise use to determine if there's work to do, such as
|
|
`gc.autoPackLimit`.
|
|
|
|
gc.autoPackLimit::
|
|
When there are more than this many packs that are not
|
|
marked with `*.keep` file in the repository, `git gc
|
|
--auto` consolidates them into one larger pack. The
|
|
default value is 50. Setting this to 0 disables it.
|
|
Setting `gc.auto` to 0 will also disable this.
|
|
+
|
|
See the `gc.bigPackThreshold` configuration variable below. When in
|
|
use, it'll affect how the auto pack limit works.
|
|
|
|
gc.autoDetach::
|
|
Make `git gc --auto` return immediately and run in the background
|
|
if the system supports it. Default is true. This config variable acts
|
|
as a fallback in case `maintenance.autoDetach` is not set.
|
|
|
|
gc.bigPackThreshold::
|
|
If non-zero, all non-cruft packs larger than this limit are kept
|
|
when `git gc` is run. This is very similar to
|
|
`--keep-largest-pack` except that all non-cruft packs that meet
|
|
the threshold are kept, not just the largest pack. Defaults to
|
|
zero. Common unit suffixes of 'k', 'm', or 'g' are supported.
|
|
+
|
|
Note that if the number of kept packs is more than gc.autoPackLimit,
|
|
this configuration variable is ignored, all packs except the base pack
|
|
will be repacked. After this the number of packs should go below
|
|
gc.autoPackLimit and gc.bigPackThreshold should be respected again.
|
|
+
|
|
If the amount of memory estimated for `git repack` to run smoothly is
|
|
not available and `gc.bigPackThreshold` is not set, the largest pack
|
|
will also be excluded (this is the equivalent of running `git gc` with
|
|
`--keep-largest-pack`).
|
|
|
|
gc.writeCommitGraph::
|
|
If true, then gc will rewrite the commit-graph file when
|
|
linkgit:git-gc[1] is run. When using `git gc --auto`
|
|
the commit-graph will be updated if housekeeping is
|
|
required. Default is true. See linkgit:git-commit-graph[1]
|
|
for details.
|
|
|
|
gc.logExpiry::
|
|
If the file gc.log exists, then `git gc --auto` will print
|
|
its content and exit with status zero instead of running
|
|
unless that file is more than 'gc.logExpiry' old. Default is
|
|
"1.day". See `gc.pruneExpire` for more ways to specify its
|
|
value.
|
|
|
|
gc.packRefs::
|
|
Running `git pack-refs` in a repository renders it
|
|
unclonable by Git versions prior to 1.5.1.2 over dumb
|
|
transports such as HTTP. This variable determines whether
|
|
'git gc' runs `git pack-refs`. This can be set to `notbare`
|
|
to enable it within all non-bare repos or it can be set to a
|
|
boolean value. The default is `true`.
|
|
|
|
gc.cruftPacks::
|
|
Store unreachable objects in a cruft pack (see
|
|
linkgit:git-repack[1]) instead of as loose objects. The default
|
|
is `true`.
|
|
|
|
gc.maxCruftSize::
|
|
Limit the size of new cruft packs when repacking. When
|
|
specified in addition to `--max-cruft-size`, the command line
|
|
option takes priority. See the `--max-cruft-size` option of
|
|
linkgit:git-repack[1].
|
|
|
|
gc.pruneExpire::
|
|
When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'
|
|
(and 'repack --cruft --cruft-expiration 2.weeks.ago' if using
|
|
cruft packs via `gc.cruftPacks` or `--cruft`). Override the
|
|
grace period with this config variable. The value "now" may be
|
|
used to disable this grace period and always prune unreachable
|
|
objects immediately, or "never" may be used to suppress pruning.
|
|
This feature helps prevent corruption when 'git gc' runs
|
|
concurrently with another process writing to the repository; see
|
|
the "NOTES" section of linkgit:git-gc[1].
|
|
|
|
gc.worktreePruneExpire::
|
|
When 'git gc' is run, it calls
|
|
'git worktree prune --expire 3.months.ago'.
|
|
This config variable can be used to set a different grace
|
|
period. The value "now" may be used to disable the grace
|
|
period and prune `$GIT_DIR/worktrees` immediately, or "never"
|
|
may be used to suppress pruning.
|
|
|
|
gc.reflogExpire::
|
|
gc.<pattern>.reflogExpire::
|
|
'git reflog expire' removes reflog entries older than
|
|
this time; defaults to 90 days. The value "now" expires all
|
|
entries immediately, and "never" suppresses expiration
|
|
altogether. With "<pattern>" (e.g.
|
|
"refs/stash") in the middle the setting applies only to
|
|
the refs that match the <pattern>.
|
|
|
|
gc.reflogExpireUnreachable::
|
|
gc.<pattern>.reflogExpireUnreachable::
|
|
'git reflog expire' removes reflog entries older than
|
|
this time and are not reachable from the current tip;
|
|
defaults to 30 days. The value "now" expires all entries
|
|
immediately, and "never" suppresses expiration altogether.
|
|
With "<pattern>" (e.g. "refs/stash")
|
|
in the middle, the setting applies only to the refs that
|
|
match the <pattern>.
|
|
+
|
|
These types of entries are generally created as a result of using `git
|
|
commit --amend` or `git rebase` and are the commits prior to the amend
|
|
or rebase occurring. Since these changes are not part of the current
|
|
project most users will want to expire them sooner, which is why the
|
|
default is more aggressive than `gc.reflogExpire`.
|
|
|
|
gc.recentObjectsHook::
|
|
When considering whether or not to remove an object (either when
|
|
generating a cruft pack or storing unreachable objects as
|
|
loose), use the shell to execute the specified command(s).
|
|
Interpret their output as object IDs which Git will consider as
|
|
"recent", regardless of their age. By treating their mtimes as
|
|
"now", any objects (and their descendants) mentioned in the
|
|
output will be kept regardless of their true age.
|
|
+
|
|
Output must contain exactly one hex object ID per line, and nothing
|
|
else. Objects which cannot be found in the repository are ignored.
|
|
Multiple hooks are supported, but all must exit successfully, else the
|
|
operation (either generating a cruft pack or unpacking unreachable
|
|
objects) will be halted.
|
|
|
|
gc.repackFilter::
|
|
When repacking, use the specified filter to move certain
|
|
objects into a separate packfile. See the
|
|
`--filter=<filter-spec>` option of linkgit:git-repack[1].
|
|
|
|
gc.repackFilterTo::
|
|
When repacking and using a filter, see `gc.repackFilter`, the
|
|
specified location will be used to create the packfile
|
|
containing the filtered out objects. **WARNING:** The
|
|
specified location should be accessible, using for example the
|
|
Git alternates mechanism, otherwise the repo could be
|
|
considered corrupt by Git as it might not be able to access the
|
|
objects in that packfile. See the `--filter-to=<dir>` option
|
|
of linkgit:git-repack[1] and the `objects/info/alternates`
|
|
section of linkgit:gitrepository-layout[5].
|
|
|
|
gc.rerereResolved::
|
|
Records of conflicted merge you resolved earlier are
|
|
kept for this many days when 'git rerere gc' is run.
|
|
You can also use more human-readable "1.month.ago", etc.
|
|
The default is 60 days. See linkgit:git-rerere[1].
|
|
|
|
gc.rerereUnresolved::
|
|
Records of conflicted merge you have not resolved are
|
|
kept for this many days when 'git rerere gc' is run.
|
|
You can also use more human-readable "1.month.ago", etc.
|
|
The default is 15 days. See linkgit:git-rerere[1].
|