0

我有一个 287M 客户端的存储库。它大约有 2 1/2 年的历史,对于我工作过的存储库来说,这个大小并不少见。不寻常的是其中 181M 是 .git 文件夹

没有过多的分支,就此而言,我一直认为分支本身不会占用那么多空间,它只是一个指针。但如果这是错误的,也请纠正我。

我的问题与导航有关(当然还有修复它):

  1. 我如何确定哪些文件对此负责?
  2. 有一个db_dump.sql.gz文件愚蠢地包含在 repo 中。如何删除该文件并将其从 git 历史记录中完全删除,就好像它从未存在过一样?(它是 16M,但我在想如果自动化进程定期转储该文件,并且提交了这些更改,这可能是大尺寸的部分原因)。
  3. 如果有的话,有什么方法可以减少 git repo 的大小?谢谢。
4

1 回答 1

0

你可以运行git repack让 git 重新压缩它的内容,但无论如何,这个命令应该由 git 偶尔运行一次。

  1. 我知道这篇文章,它提供了一个脚本让 git 列出它的对象和大小,然后尝试给它们一个人名
  2. 这需要重写历史记录,因此如果您的存储库被共享,请小心并警告其他开发人员:您要查找的命令是git filter-branch(带有--index-filter选项)
  3. 您可以运行git gcgit repack. 另一种方法是使用您的 repo 的新副本:

    git clone mydir newdir
    # see how much disk the new '.git/' dir takes
    
于 2017-02-02T13:54:41.227 回答