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