【问题标题】:How to add a big repository to Git如何将大存储库添加到 Git
【发布时间】:2015-08-26 13:16:57
【问题描述】:

我有一个包含数百万个文件的项目,所有这些文件都是代码,而不是内容。信不信由你,但这个项目目前没有使用任何源代码控制......

我想将它置于源代码控制之下,我选择了 Git,因为我们将它用于其他项目。问题是存储库似乎太大,Git 无法处理。

我可以将它拆分为多个“子项目”,但是否可以将所有这些“子项目”链接在一起?

编辑

查看此讨论。我基本有这种情况,一个项目有几GB的数据,但是所有的文件都是源代码。

Is Git recommended for large (>250GB) content repositories

【问题讨论】:

  • 尝试创建你的 repo 和 git commit !为什么你会相信 git 不能处理?你的 repo 应该交付一些东西,在 java 中它可以是 jar/war,例如,当这个子项目交付一个 jar 文件时,你会使用子项目
  • “Git 无法处理太大”的症状是什么?通常,您使用 git submodules“将所有这些子项目链接在一起”。
  • 过大的症状?示例:Git 尝试提交数小时但未成功...
  • 我看过你的其他cmets,我不相信300G以上的文件都是源代码文件。 (我可能弄错了,因为我不了解您的系统。)如果是这种情况,请考虑仅添加真正的源代码文件并排除图像、文档和数据转储以及其他二进制文件(例如可执行文件)和供应商提供的文件目前。这将允许您的所有用户克隆源代码并使用其他方式(例如 ftp)获取其他文件。稍后,您可以开始慢慢添加更重要的文件,从而使向版本控制系统的过渡更加容易。
  • 我也很难相信一个不使用源代码控制的项目可以拥有 300G 的非机器生成的源代码。这是 Mozilla 的 75 倍!

标签: git


【解决方案1】:

Git 对存储库中的文件大小或文件数没有任何限制。

话虽如此,如果您的 git 存储库的某些部分存在依赖关系中断并且在逻辑上自然可能成为其自身的一部分,请考虑使用 submodules。从您下面的评论中听起来您已经脱离了这个项目的本质,并且已经在暗示 submodules

我可以将它拆分为多个“子项目”,但是否可以将所有这些“子项目”链接在一起?

最终,我在这里的建议是尝试一下。我不确定你的恐惧是从哪里来的,但只需将项目初始化为 git 存储库即可。

【讨论】:

  • 谢谢你的答案。我尝试将其初始化为 Git 存储库。即使你等了一整天,它也无法通过初始提交。
  • @Gudradain 会发生什么? Git 只是挂起?
  • 差不多。它永远冻结。我尝试通过命令行和源树之类的 GUI 执行此操作,都冻结了。
  • @Gudradain 我刚刚看到您的“项目”是 300 GB。这真的是一个项目吗??
  • @Gudradain Git 到底坚持了什么? $ git init$ git commit?
【解决方案2】:

我有大项目 (2GB+)。 Git可以很好地处理它。

我发现的唯一问题是网络连接 (VPN) 速度慢。特别是如果开发人员想要克隆项目。但是一旦项目被克隆,拉和推就可以从 VPN 正常工作。

【讨论】:

  • 更多的是超过 300GB 的存储库。
  • 向管理员仔细检查:我使用的是 Atlassian Stash,它有项目和存储库磁盘大小限制。
  • 一个技巧:我创建一个项目,然后一点一点地添加文件和目录。这需要很长时间和许多提交,但效果更好。我已经在 Git 和 SVN 中完成了这项工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
  • 2018-09-02
相关资源
最近更新 更多