我们在中央git服务器上有一个非常大的存储库(> 5GiB)。通过我当地克隆的一系列李子,重新包装和gcs,我能够显着减小其尺寸。
这是我使用的序列:
git repack -A -d
git prune-packed
git gc --prune=now
git repack -a -d -f --depth=250 --window=250
git prune
git prune-packed
(其中一些可能是多余的)
在活动存储库中使用哪些操作是安全的?理想情况下,我们不需要在管理完成时锁定服务器存储库,并且人们可以在后台进行大小优化时分支/推/拉/合并到他们心中的内容。
Google会返回相互矛盾的信息。例如http://marc.info/?l=git&m=117025831200311表示git gc --prune
在活动存储库上不安全,但说git gc
没问题。但是默认情况下,--prune
在git-gc中处于启用状态。
我无法在活动存储库中找到任何其他有关这些操作安全性的内容。这个联机帮助页在这个问题上没有提及。