Git存储库大小比它应该大

Feb*_*ble 3 git

所以我在个人服务器上使用git,我有一个旧的仓库,我需要更新.我删除了一堆旧文件并提交并推动了更改.我在我的服务器上使用Web UI(Gitlist).当我使用这个GUI下载repo作为zip文件时,它的大小正确,大约41MB.然而,当我克隆回购时,由于其中一个./git/objects/pack文件的大小约为900MB ,因此它更接近于演出.

当它真的应该小得多时,为什么回购如此之大?

Von*_*onC 5

推送删除文件的提交不会使git repo变小.

您需要在git repo的历史记录中删除这些文件,以便缩小它的大小.
这通常是与组合完成git filter-branchgit gc --aggressive --prune=now:详见" 减少的Git仓库大小 ".
(不要忘记:git gc单独一个人实际上可以增加回购的大小!)

要删除大文件,BFG工具也可以提供帮助.

总之,不要混淆:

  • 一个zip图像(代表一个repo的一个版本)
  • 完整的回购(代表所有提交)

您作为zip下载的HEAD确实较小(您删除了文件).
但完整的历史仍然引用它们.

  • "推送删除文件的提交不会使git repo变小." 具有讽刺意味的是,它会使它略微变大:p (2认同)