Git垃圾回收似乎无法正常工作

杰夫

我对如何彻底清除垃圾感到困惑...

git count-objects -v -H

warning: garbage found: ./objects/pack/gc_7174754666377259454.idx_tmp
warning: garbage found: ./objects/pack/gc_7174754666377259454.pack_tmp
warning: garbage found: ./objects/pack/pack-f5b13f50fe2e4d773028c51f547822e6f2fe720b.bitmap
count: 0
size: 0 bytes
in-pack: 32986
packs: 1
size-pack: 44.14 MiB
prune-packable: 0
garbage: 3
size-garbage: 41.20 MiB

因此,这对我意味着我的回购中有41兆垃圾?

git gc --prune = now --aggressive

Counting objects: 32986, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (31610/31610), done.
Writing objects: 100% (32986/32986), done.
Total 32986 (delta 23902), reused 9080 (delta 0)

当我再次运行计数对象时,我仍然具有相同的输出

    size-garbage: 41.20 MiB

我是否只是手动删除垃圾文件?至少一个至少非常丰满。

12/02/2014  02:06 PM                 0 gc_7174754666377259454.idx_tmp
12/02/2014  02:06 PM        43,195,455 gc_7174754666377259454.pack_tmp
               2 File(s)     43,195,455 bytes
               0 Dir(s)  502,905,999,360 bytes free
C:\Users\VonC\prog\git\git>git log -Ssize-garbage|more

该显示size-garbage输出NguyễnTháiNgọcDuy(提交1a20dd4中引入,用于git 1.8.3(2013年5月)pclouds

size-garbage:KiB中垃圾文件占用的磁盘空间

count-objects:报告垃圾文件占用了多少磁盘空间

还要在松散的垃圾上发出警告,而不是由于report_garbage()count_objects()

垃圾清理技巧部分提到:

为了使回购规模最小,您需要以下两个命令(两个命令本身都不完成整个工作)。
还要注意“ a”上的小写字母“ repack,它表示您要盲目丢弃无法到达的对象,而不是将它们保留为松散的对象。

git repack -adf     # kills in-pack garbage
git prune           # kills loose garbage

因此,git count-objects -v -H在应用这两个命令后请再试一次


查看git repack手册页jthill添加了以下注释

我更喜欢big- Aoption:

“与相同-a,除非-d使用。否则
先前包装中的所有无法到达的对象将变成松散的,未包装的对象,而不是留在旧包装中。”

Linus Torvalds的认为,-fgc--aggressive是很多过度使用-以至于他建议唬弄它的文档
(在2007年)
-f用于--no-reuse-delta

这意味着更有效的组合可能是:

git repack -Ad      # kills in-pack garbage
git prune           # kills loose garbage

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章