Documentation / config / gc.txton commit Merge branch 'jk/diff-no-index-initialize' (12e5bdd)
   1gc.aggressiveDepth::
   2        The depth parameter used in the delta compression
   3        algorithm used by 'git gc --aggressive'.  This defaults
   4        to 50.
   5
   6gc.aggressiveWindow::
   7        The window size parameter used in the delta compression
   8        algorithm used by 'git gc --aggressive'.  This defaults
   9        to 250.
  10
  11gc.auto::
  12        When there are approximately more than this many loose
  13        objects in the repository, `git gc --auto` will pack them.
  14        Some Porcelain commands use this command to perform a
  15        light-weight garbage collection from time to time.  The
  16        default value is 6700.  Setting this to 0 disables it.
  17
  18gc.autoPackLimit::
  19        When there are more than this many packs that are not
  20        marked with `*.keep` file in the repository, `git gc
  21        --auto` consolidates them into one larger pack.  The
  22        default value is 50.  Setting this to 0 disables it.
  23
  24gc.autoDetach::
  25        Make `git gc --auto` return immediately and run in background
  26        if the system supports it. Default is true.
  27
  28gc.bigPackThreshold::
  29        If non-zero, all packs larger than this limit are kept when
  30        `git gc` is run. This is very similar to `--keep-base-pack`
  31        except that all packs that meet the threshold are kept, not
  32        just the base pack. Defaults to zero. Common unit suffixes of
  33        'k', 'm', or 'g' are supported.
  34+
  35Note that if the number of kept packs is more than gc.autoPackLimit,
  36this configuration variable is ignored, all packs except the base pack
  37will be repacked. After this the number of packs should go below
  38gc.autoPackLimit and gc.bigPackThreshold should be respected again.
  39
  40gc.writeCommitGraph::
  41        If true, then gc will rewrite the commit-graph file when
  42        linkgit:git-gc[1] is run. When using linkgit:git-gc[1]
  43        '--auto' the commit-graph will be updated if housekeeping is
  44        required. Default is false. See linkgit:git-commit-graph[1]
  45        for details.
  46
  47gc.logExpiry::
  48        If the file gc.log exists, then `git gc --auto` will print
  49        its content and exit with status zero instead of running
  50        unless that file is more than 'gc.logExpiry' old.  Default is
  51        "1.day".  See `gc.pruneExpire` for more ways to specify its
  52        value.
  53
  54gc.packRefs::
  55        Running `git pack-refs` in a repository renders it
  56        unclonable by Git versions prior to 1.5.1.2 over dumb
  57        transports such as HTTP.  This variable determines whether
  58        'git gc' runs `git pack-refs`. This can be set to `notbare`
  59        to enable it within all non-bare repos or it can be set to a
  60        boolean value.  The default is `true`.
  61
  62gc.pruneExpire::
  63        When 'git gc' is run, it will call 'prune --expire 2.weeks.ago'.
  64        Override the grace period with this config variable.  The value
  65        "now" may be used to disable this grace period and always prune
  66        unreachable objects immediately, or "never" may be used to
  67        suppress pruning.  This feature helps prevent corruption when
  68        'git gc' runs concurrently with another process writing to the
  69        repository; see the "NOTES" section of linkgit:git-gc[1].
  70
  71gc.worktreePruneExpire::
  72        When 'git gc' is run, it calls
  73        'git worktree prune --expire 3.months.ago'.
  74        This config variable can be used to set a different grace
  75        period. The value "now" may be used to disable the grace
  76        period and prune `$GIT_DIR/worktrees` immediately, or "never"
  77        may be used to suppress pruning.
  78
  79gc.reflogExpire::
  80gc.<pattern>.reflogExpire::
  81        'git reflog expire' removes reflog entries older than
  82        this time; defaults to 90 days. The value "now" expires all
  83        entries immediately, and "never" suppresses expiration
  84        altogether. With "<pattern>" (e.g.
  85        "refs/stash") in the middle the setting applies only to
  86        the refs that match the <pattern>.
  87
  88gc.reflogExpireUnreachable::
  89gc.<pattern>.reflogExpireUnreachable::
  90        'git reflog expire' removes reflog entries older than
  91        this time and are not reachable from the current tip;
  92        defaults to 30 days. The value "now" expires all entries
  93        immediately, and "never" suppresses expiration altogether.
  94        With "<pattern>" (e.g. "refs/stash")
  95        in the middle, the setting applies only to the refs that
  96        match the <pattern>.
  97
  98gc.rerereResolved::
  99        Records of conflicted merge you resolved earlier are
 100        kept for this many days when 'git rerere gc' is run.
 101        You can also use more human-readable "1.month.ago", etc.
 102        The default is 60 days.  See linkgit:git-rerere[1].
 103
 104gc.rerereUnresolved::
 105        Records of conflicted merge you have not resolved are
 106        kept for this many days when 'git rerere gc' is run.
 107        You can also use more human-readable "1.month.ago", etc.
 108        The default is 15 days.  See linkgit:git-rerere[1].