管理.git文件大小

时间:2010-05-28 00:09:31

标签: git

我的.git文件已增长到229Mb,我想知道缩小尺寸的最佳方法是什么。我知道git gc并且已经使用了相当数量的git gc。我不完全确定git是如何工作的,但我知道那里有我不再需要的打包信息。就像,我知道我不再需要保存前五个分支。有没有办法彻底删除真正的旧分支或提交或类似的东西?

4 个答案:

答案 0 :(得分:14)

如果您希望保持(可达)提交历史记录不变,则过期,重新包装,修剪和垃圾回收:

git reflog expire --expire=0 --all
git repack -ad
git prune 
git gc

这应该是您可以获得repo 保留提交历史记录的最小尺寸。

如果没有,也就是说,你想要或者不介意重新开始以当前的回购状态作为初始提交,那么Peter Tillemans的做法就会做到。

答案 1 :(得分:2)

你在“Reduce git repository size”中有一些技巧,但我在其中也提到了git gc alone can increase the size of the repo

因此,如果没有人主动从你的回购中提取,那么可能需要一些过滤分支(也在that question中引用)。

Git repo大小迅速增加的一个因素是太多二进制文件的版本化。它是Git limits之一,所以请尝试:

  • 在他们自己的Git仓库中版本这样的大对象,引用为子模块
  • 或将它们发布在外部存储库中,用于交付,例如Maven存储库(即“不在Git存储库中”)

答案 2 :(得分:1)

最简单的方法是做一个

git clone --depth 1 your_old_repo

在新位置,然后将其交换回原位。

另见git faq

答案 3 :(得分:1)

我会使用git gc

进行一些垃圾回收