你如何管理大型git存储库?

时间:2011-07-28 16:48:30

标签: git version-control size logistics

我们的一个git存储库足够大,git-clone需要花费很多时间(超过几分钟)。 .git目录大约是800M。克隆总是在ssh上的100Mbps lan上进行。即使将ssh克隆到localhost也需要几分钟的时间。

是的,我们将数据和二进制blob存储在存储库中。

如果没有将它们移出去,还有另一种方法可以让它更快吗?

即使移动大文件我们也可以选择,我们怎么能在没有重大中断的情况下重写每个人的历史?

4 个答案:

答案 0 :(得分:1)

我遇到了~1GB存储库的相同情况,需要通过DSL传输。我带着经常被遗忘的运动鞋去了:把它放在一个闪存驱动器上,然后把它开到我的车里。这在每种情况下都不实用,但你真的只需要为初始克隆做这件事。之后,转移是相当合理的。

答案 1 :(得分:0)

我很确定你无法在不重写历史记录的情况下移出这些二进制文件。

根据二进制文件的内容(可能是一些预先构建的库或其他内容),您可以使用一个小脚本供开发人员运行后检查并下载它们。

答案 2 :(得分:0)

千兆...光纤...... 没有重写历史,你就相当有限。

你可以尝试git gc它可以清理一下,但我不确定是否用克隆完成了。

答案 3 :(得分:0)

  

即使移动大文件我们也可以选择,我们怎么办呢   没有重大中断重写每个人的历史?

检查这个答案: Will git-rm --cached delete another user's working tree files when they pull

此措施以及向.gitignore添加模式,可以帮助您保留这些大文件。