Home Explore Blog CI



git

2nd chunk of `Documentation/config/gc.adoc`
981009fc4cb70d0a2d5e3d447aa8e1519c78714140b6cfcc0000000100000989
 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

Title: Git Garbage Collection Expiration and Pruning Options
Summary
This section describes configuration options for controlling the expiration and pruning of various Git objects, including reflog entries, unreachable objects, and worktree references, to help maintain repository size and performance.