如何处理大型git存储库?

时间:2012-10-12 09:20:18

标签: git

我目前正在将git用于大型存储库(大约12 GB,每个分支的大小为3 GB)。 该存储库包含许多二进制文件(音频和图像)。

问题是克隆和拉取可能需要很多时间。 特别是“解决增量”步骤可能会非常长。

解决此类问题的最佳方法是什么?

我尝试删除delta压缩,因为它使用.gitattributes中的delta选项解释here,但它似乎没有改善克隆持续时间。

提前致谢

凯文

2 个答案:

答案 0 :(得分:12)

2015年4月更新:Git Large File Storage (LFS)(由GitHub提供)。

它使用git-lfs(请参阅 git-lfs.github.com )并使用支持它的服务器进行测试:lfs-test-server
您只能在git仓库中存储元数据,在其他地方存储大型文件

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif


原始答案(2012)

对于大型二进制文件,其变化不大的一种解决方案是将它们存储在不同的引用中(如Nexus repository),并且只将文本文件存储为< em>声明您需要哪个版本 使用“工件库”比在 repo中存储二进制元素更容易(用于比较版本和分支之间的合并,这对于所述二进制文件没有多大用处)。

另一个以git为中心的解决方案是 git-annex

  

git-annex允许使用git管理文件,而无需将文件内容检入git   虽然这看似矛盾,但是当处理大于git的文件当前可以轻松处理时,无论是由于内存,时间还是磁盘空间的限制,它都很有用。

但它与Windows不兼容。

更通用的解决方案可以是git-media,它还允许您将Git与大型媒体文件一起使用,而无需将媒体存储在Git中。

最后,最简单的解决方案是在你的问题中提到他们自己的git submodule中的那些二进制文件:它不是很令人满意,并且初始克隆仍然需要一些时间,但下一次更新父回购将很短。

答案 1 :(得分:0)

请按照以下步骤操作。

1.通过输入以下代码在本地计算机上安装git lfs。

git lfs install

2.现在添加您希望lfs为您管理的文件类型。

git lfs track "*.mp4"
  1. 现在你已经准备好了。继续添加,提交和推送您的文件,不会有任何警告。
相关问题