【问题标题】:Accounting for extremely large size of .git folder in a repository考虑到存储库中非常大的 .git 文件夹
【发布时间】:2017-02-02 13:46:53
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: git filesize pruning


    【解决方案1】:

    您可以运行git repack 让 git 重新压缩其内容,但无论如何,此命令应该由 git 偶尔运行一次。

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

      git clone mydir newdir
      # see how much disk the new '.git/' dir takes
      

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2014-06-05
      • 2014-11-02
      • 2018-10-29
      • 2012-03-18
      • 1970-01-01
      相关资源
      最近更新 更多