如何使用很少或从未更改的大文件正确组织存储库?

时间:2013-06-14 10:23:12

标签: git github

我刚开始使用git和github。我有一个大的json文件(~45Mb)。它在项目中用作只读字典,并放在根项目目录中。它不会改变。它现在不在我的存储库中,因为我将其名称添加到.gitignore

现在我想在github上传这个项目。由于json文件列在.gitignore中,我希望它不会被push编辑到github存储库。如何正确处理这样的文件?我应该在存储库中添加它吗?是否有使用此类文件配置存储库的特定步骤?

2 个答案:

答案 0 :(得分:4)

如果存储库的所有用户都需要大json文件,我可以看到三个选项:

  1. 提交文件
  2. 编写一个可以按需生成json文件的程序
  3. 指示您的用户从某个外部位置下载文件
  4. 选项#1 - 由于文件不会更改,因此克隆存储库的任何人只需支付一次性45M文件存储成本,这是必需的,因为他们需要能够访问整个文件。此外,该文件将在git的db中压缩,因此您不必支付双倍的存储成本。克隆只需要复制文件的压缩版本,因此它会比你想象的要快。

    选项#2 - 如果存储库的所有用户都需要该文件,并且生成起来很容易,那么只需提交一个生成该文件的程序,并为用户提供有关如何运行该程序的简单说明。

    选项#3 - 将文件发布到某处并让用户下载它,在README中提交说明。

    选项#1似乎最方便,45M不是很大,特别是如果文件没有改变,所以如果是我,我只是提交文件。

答案 1 :(得分:0)

您可以通过在 .gitattribute 中添加以下行来禁用特定文件的压缩:

*.<file extension> -crlf -diff -merge -delta