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