我对如何彻底清除垃圾感到困惑...
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-
A
option:
“与相同
-a
,除非-d
使用。否则
先前包装中的所有无法到达的对象将变成松散的,未包装的对象,而不是留在旧包装中。”
Linus Torvalds的认为,
-f
像gc
的--aggressive
是很多过度使用-以至于他建议唬弄它的文档。
(在2007年)
(-f
用于--no-reuse-delta
)
这意味着更有效的组合可能是:
git repack -Ad # kills in-pack garbage
git prune # kills loose garbage
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句