关于Git的垃圾回收

Git中的垃圾收集说明。

设定

根据 git 帮助配置 (v1.9.2)。

    http://git-scm.com/docs/git-config/1.9.2

()是标题的默认值。

gc.auto(6700)- gc.auto(6700)

当储存库中的松散对象数量超过这个数量时,git gc –auto 将对它们进行打包。

当非压缩的对象数量超过指定数量时,git gc –auto 命令会将它们压缩成pack。

有些Porcelain命令会定期使用此命令执行轻量级垃圾回收。

其中一些针对一般用户的Porcelain命令会在后台执行git gc –auto,以进行轻量级垃圾回收。

默认值为6700。将其设置为0会将其禁用。

默认值为6700.0,无效。

gc.autopacklimit (50) -> 自动打包限制(50)

当仓库中有超过如此数量的未标记为*.keep文件的包时,git gc –auto会将它们合并为一个更大的包。

当指定的 pack 文件超出数量限制时,git gc –auto 在合适的时候会将它们重新整理成一个 pack。这些被保留的文件会以 *.keep 的形式持续保留。

默认值为50。将其设为0可以禁用。

默认值是50。为0时无效。

gc.pruneExpire (两周之前)

当运行git gc时,它会调用prune –expire 2.weeks.ago。

执行 git gc 是调用了 prune –expire 2.weeks.ago 命令。这将删除超过两周前的不可达对象。

使用此配置变量覆盖宽限期。

值“now”可用于禁用此宽限期并立即清除不可达对象。

设定now来立即删除无法达到的对象。

gc.reflogexpire(90天)

git reflog expire删除比此时间早的reflog条目。

通过git reflog expire命令,删除比指定值更早的reflog记录。

默认为90天。

默认为90天。

中间有“”(例如,“refs/stash”)的设置只适用于与匹配的引用。

可以通过类似于 gc.<模式>.reflogexpire 的设置来设定 reflog 的过期期限。

gc.reflogExpireUnreachable(30天)的意思是30天内未被引用的日志将过期。

git reflog expire会删除早于某个时间的reflog条目,并且这些条目无法从当前最新的提交中访问到。

在GitHub版本控制系统中,通过git reflog expire命令可以删除那些已经达不到当前参考点(tip)的reflog,这些reflog的时间戳早于该指定值。

默认为30天。

默认为30天。

在中间带有””(例如”refs/stash”),此设置仅适用于与该模式相匹配的引用。

与 gc.reflogexpire 类似,可以使用模式进行指定。

gc.rerereresolved 被解决(60天)

当运行git rerere gc时,之前解决的冲突合并记录会保存多少天?

当在运行git rerere gc时,会删除在此值之前解决冲突并合并的记录。

默认值是60天。请参考git-rerere(1)。

默认为60天。

gc.rerereunresolved(15天)

当运行git rerere gc时,未解决的冲突合并记录将保留多少天。

执行”git rerere gc”命令时,将删除指定值之前未解决的冲突合并记录。

默认为15天。请查看git-rerere(1)。

默认设为15天。

gc.aggressiveWindow (250) 可以进行简化窗口回收(250)

git gc –aggressive 使用的增量压缩算法中的窗口大小参数。

使用git gc –aggressive时,用于差异压缩算法的窗口大小。

默认为250。

默认值为250。

广告
将在 10 秒后关闭
bannerAds