Git 中的文件限制是多少(数量和大小)?

2024-03-27

有谁知道Git对文件数量和文件大小的限制是多少?


此消息来自可以帮助您解决一些其他限制

[...] CVS,即它实际上最终几乎面向“一个文件” 一次”模型。

这很好,因为你可以拥有一百万个文件,然后只检查 其中一些 - 你甚至永远不会see对方的影响 999,995 个文件。

git 从根本上来说,从来没有真正关注过整个仓库。即使你 限制一下事情(即只查看一部分,或者让历史记录消失) 稍微向后退一点),git 最终仍然总是关心整个事情, 并携带知识。

因此,如果你强迫 git 将所有东西视为一个整体,那么 git 的扩展性会非常糟糕huge存储库。我不认为这部分是真正可以修复的,尽管我们 也许可以改进它。

是的,还有“大文件”问题。我真的不知道该怎么办 处理大文件。我知道我们很讨厌他们。

更多内容请见我的其他答案 https://stackoverflow.com/questions/899373/transferring-legacy-code-base-from-cvs-to-distributed-repository-e-g-git-or-mer/899428#899428:Git 的限制是每个存储库必须代表一个“连贯的文件集 https://stackoverflow.com/questions/967817/do-you-version-control-the-invidual-apps-or-the-whole-project-or-both/968477#968477”,“所有系统”本身(您不能标记“存储库的一部分”)。
如果您的系统由自治(但相互依赖)的部分组成,则必须使用子模块 http://git-scm.com/book/en/Git-Tools-Submodules.

如图所示塔尔乔的回答 https://stackoverflow.com/questions/984707/what-are-the-git-limits/984763#984763,极限可以是system一个(大量文件),但如果您确实了解 Git 的本质(关于由 SHA-1 密钥表示的数据一致性),您将意识到真正的“限制”是usage一:也就是说,你不应该尝试存储一切在 Git 存储库中,除非您准备好始终获取或标记所有内容。对于一些大型项目来说,这是没有意义的。


要更深入地了解 git 限制,请参阅“git 处理大文件 https://stackoverflow.com/a/19494211/6309"
(其中提到git-lfs https://git-lfs.github.com/:在 git 存储库之外存储大文件的解决方案。 GitHub,2015 年 4 月)

限制 git repo 的三个问题:

  • 巨大的文件 (the 包文件的 xdelta https://stackoverflow.com/a/9478566/6309仅在内存中,这对于大文件来说不好)
  • 文件数量巨大,这意味着每个 blob 一个文件,并且 git gc 一次生成一个包文件的速度很慢。
  • 巨大的包文件,包文件索引从(巨大的)包文件中检索数据效率低下。

最近的一个帖子(2015 年 2 月)说明了Git 存储库的限制因素 http://www.spinics.net/lists/git/msg246226.html:

来自中央服务器的一些同时克隆是否也会减慢其他用户的其他并发操作?

克隆时服务器没有锁,所以理论上克隆不会影响其他操作。不过,克隆会使用大量内存(以及大量 CPU,除非您打开可达性位图功能,您应该这样做)。

Will 'git pull' 慢一点?

如果我们排除服务器端,树的大小是主要因素,但是你的 25k 文件应该没问题(linux 有 48k 文件)。

'git push'?

这个不受你的仓库历史有多深或你的树有多宽的影响,所以应该很快..

啊裁判的数量可能会影响两者git-push and git-pull.
我认为斯特凡在这方面比我更了解。

'git commit'? (它被列为慢参考文献3 http://thread.gmane.org/gmane.comp.version-control.git/189776.) 'git status'? (参考文献 3 再次变慢,尽管我没有看到它。)
(还git-add)

再说一次,你的树的大小。按照您的存储库的大小,我认为您不需要担心它。

有些操作可能看起来不是日常操作,但如果它们被 Web 前端频繁调用到 GitLab/Stash/GitHub 等,那么它们可能会成为瓶颈。 (例如'git branch --contains'似乎受到大量分支机构的严重不利影响。)

git-blame当文件修改很多时,速度可能会很慢。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git 中的文件限制是多少(数量和大小)? 的相关文章

  • 使用 TFS 个人访问令牌克隆 Git 存储库

    我正在尝试以编程方式克隆 git 存储库 我的 ASP NET MVC 应用程序正在创建并启动一个进程 处理进程的代码工作正常 但是当尝试使用本地 TFS PAT 克隆 git 存储库时 身份验证失败 我无法使用 NTLM 或要求用户输入凭
  • git 预提交钩子格式代码 - Intellij/Android Studio

    本要点展示了如何在预提交时使用 Eclipse 格式化程序自动格式化 Java 代码 Source https gist github com ktoso 708972 https gist github com ktoso 708972
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • git diff 在尖括号中显示 unicode 符号

    我有一个带有 unicode 符号 俄语文本 的文件 当我修复一些拼写错误时 我使用git diff color words 看看我所做的改变 如果是 unicode 西里尔文 符号 尖括号会造成一些混乱 如下所示 cat p1 cat p
  • 分支明显不同,但提交历史是相同的

    git status告诉我我的分支和我在另一个存储库上开始的分支已经分歧 On branch master Your branch and origin master have diverged and have 13 and 13 dif
  • Git:显示分支之间的差异,忽略合并的提交

    我的存储库历史记录看起来像这样 x y z branch a b c d e master 我想获得 branch 完整历史记录的单个差异 即 像 git diff 输出 我不想要像 git log p 产生的一大堆差异 而不包括任何从 m
  • 为什么我无法创建/签出该分支?

    我正在尝试创建本地 Git 分支 但它不起作用 以下是我正在使用的命令 tablet edit11 git checkout b edit 11 Switched to a new branch edit 11 tablet edit11
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • 自动将所有 GitHub 存储库镜像到 gitlab

    对于 GitLab 必须手动为每个存储库设置拉 推镜像 我想知道那里有any way可以自动将所有 Github 存储库同步到 GitLab 这样 当您在 GitHub 中创建新的存储库时 GitLab 中的存储库将自动创建 并充当拉取镜像
  • 格里特:! [远程拒绝] HEAD -> refs/publish/master (没有新的更改)

    我做了一些更改 提交了它们并将分支推送到 Gerrit git push gerrit 现在我的更改没有出现在 Gerrit 中 我认为这是因为我手动推送更改而不是使用git 审查 https github com openstack in
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 使用终端时 Git 推送在总计后卡住了?

    我尝试将一些文件推送到Github 总大小只有22 2M 我不知道为什么它在总行之后卡住了 我读过推送到 Github 时 Git 推送挂起 https stackoverflow com questions 16906161 git pu
  • Netbeans 和 Git,.obj 文件被忽略

    我正在开发一个涉及 obj 文件的小型 git 项目 当我查看 项目选项卡 时 我发现它们被忽略了 但如果我查看我的 gitignore 我无法理解为什么 DepthPeeling nbproject private DepthPeelin
  • `git Reset HEAD file` 是否也检查该文件?

    我错误地向 git 添加了一个目录 当我按照提示操作时here https stackoverflow com questions 348170 undo git add通过执行以下操作来撤消添加git reset HEAD
  • 当当前分支上有未提交的更改时签出另一个分支

    大多数时候 当我尝试签出另一个现有分支时 如果我在当前分支上有一些未提交的更改 Git 会不允许我这样做 所以我必须首先提交或隐藏这些更改 然而 有时 Git 确实允许我在不提交或存储这些更改的情况下签出另一个分支 并且它会将这些更改携带到
  • 如何使用 Git 跟踪目录而不是文件?

    我最近开始使用 Git 但只有一件事遇到了麻烦 如何在不跟踪目录内容的情况下跟踪目录 例如 我正在开发的网站允许上传 我想跟踪上传目录 以便在分支等时创建它 但显然不是其中的文件 在开发分支中的测试文件或主控中的真实文件 在我的 gitig
  • 带有 git Remote 的 Gem 文件在 Heroku 推送上失败

    我的 gemfile 中有以下行 gem client side validations git gt email protected cdn cgi l email protection Dakuan client side valida
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • Git 更改丢失 - 为什么?

    我们的开发团队正在使用 git 最近我们至少两次丢失了文件更改 我们正在使用私人 Github 存储库 在当前情况下 我们可以返回 Github 上的日志并查看我对文件所做的一些更新 后来 另一位团队成员更改了文件的不同部分 它似乎破坏了我
  • `git push` -- 没有输出,什么也没有发生

    touch test git add test git commit m test git push u origin master 这奏效了 该文件已上传到存储库 rm test cp R website website git rm t

随机推荐

  • Laravel 4 如何在视图中显示 Flash 消息?

    我正在尝试显示我的闪存消息 这是我的路由文件中的 Route post users groups save function return Redirect to users groups gt withInput gt with succ
  • RemoteServiceServlet 和 RemoteService 有什么区别?

    我知道第一个是类 第二个是接口 但重点是 为什么客户服务应该扩展远程服务并为服务实现类扩展远程服务Servlet 那么幕后到底是什么 您正在尝试比较苹果和橙子 请阅读docs https developers google com web
  • 是否有一个运算符可以作为 concatMap 但具有多个内部可观察值

    我正在使用可观察的对象来查询我的数据库 该可观察对象将返回一个数组 其中包含找到的所有匹配对象 我的问题是我想将可观察值映射到我将从另一个 API 检索的更多详细信息 我尝试了 concatMap 但它只让我在初始可观察值中嵌套 1 个可观
  • 测试互联网连接的最快方法

    C 2008 SP1 我正在使用此代码连接到我们的客户网站 这是针对软件电话应用程序的 在用户拨打电话之前 软件电话必须测试是否存在有效的互联网连接 因此 我要做的就是使用 httpWebRequest 类连接到我们的客户网站 如果响应正常
  • iPhone 电子邮件应用程序启动 URL

    在 iPhone 上启动电子邮件和开始新电子邮件的 URL 是 mailto 电子邮件受保护 cdn cgi l email protection 我只想启动电子邮件应用程序 将用户放在主菜单或收件箱中 mailto 开始撰写新的空白电子邮
  • 在谷歌应用程序脚本中解析 html 的最佳方法是什么

    var page UrlFetchApp fetch contestURL var doc XmlService parse page 上面的代码在使用时会出现解析错误 但是如果我用已弃用的 Xml 类替换 XmlService 类 并设置
  • 跟踪文件(Windows 终端)的硬链接(重新分析点?)?

    如何跟踪文件的硬链接 重新分析点 管道传输到格式列表不会显示目标 至少在 powershell 7 中 你会得到一个小 ascii 箭头 该文件夹位于 env path 中 如果您没有 Windows 终端 则 MicrosoftEdge
  • 权限是不可更改的权限类型

    背景 我正在尝试新的 Tiles 和 TileService 并决定重新创建 USB Tethering 磁贴CyanogenMod https github com CyanogenMod android frameworks base
  • 现在N层架构意味着什么?

    从传统意义上讲 N 层意味着将应用程序分成 层 并将每个 层 放在不同的服务器上 这样做至少有 3 个原因 维护 a 代码维护 更容易进行错误修复和功能添加 b 硬件维护 关闭一台服务器不会中断其他层的服务 性能 一台服务器的速度通常不够快
  • Python - 在这种情况下列表理解是否有效?

    这是Python中的输入 脏 列表 input list n data1 n data2 n n data3 n 每个列表元素包含带有换行符的空格或带有换行符的数据 使用下面的代码清理它 cleaned up list data strip
  • 在 Archlinux 上通过 Pyenv 编译 Python 但缺少 OpenSSL

    我正在尝试在新安装的 ArchLinux 上通过 pyenv 安装 python pyenv install 3 5 1Downloading Python 3 5 1 tar xz gt https www python org ftp
  • Javascript 字符串替换为计算

    有没有办法解决javascript中字符串中的数学表达式 例如 假设我想生成字符串 Tom has 2 apples Lucy has 3 apples Together they have 5 apples 但我希望能够替换变量 我可以通
  • 基于属性之一的 JSON 模式 anyOf 验证

    我很难弄清楚如何根据其中一个属性的值验证对象数组 所以我有一个 JSON 对象 例如 items name foo otherProperty bar name foo2 otherProperty2 baz otherProperty3
  • initWithNibName 没有被调用

    我需要将一些自定义逻辑放入我的 iPhone 应用程序中 以便根据您运行的 iOS 版本 选择不同的 XIB 文件 即 iPhone 或 iPad 将显示不同的 XIB 文件 我从第一天起就构建了整个 iPhone 应用程序 一切都很好 在
  • 使用构建器模式最多设置一次值

    Java 中是否有标准做法 在使用构建器模式时 确保成员变量最多设置一次 我需要确保 setter 被调用 0 或 1 次 但绝不会更多 我想扔一个RuntimeException某种类型的问题 但我担心同步问题以及该领域的最佳实践 什么也
  • unordered_set::find 的复杂性可以预测吗?

    在寻找适合我正在构建的应用程序的容器时 我浏览了以下文档unordered set 鉴于我的应用程序通常只需要insert and find函数 这个类看起来相当有吸引力 然而 我有点推迟了 因为find是 O 1 摊销 但最坏情况是 O
  • 页面刷新和带有 url 重写的角度路由后,cookie 计数为零

    我正在使用带有 net core 2 0 和 Angular 4 的 Angular Spa 模板 页面刷新后 我得到的 cookie 数量为零 事实上 页面刷新后我没有在 HttpContext 中得到任何内容 Here is my co
  • 在应用程序内将“精简版应用程序”转换为“专业应用程序”

    我在 App Store 中有两个应用程序 一种是免费版本 另一种是付费版本 我需要在应用程序本身中有一个名为 升级 的按钮 每当用户单击该按钮时 我们是否可以为会员提供使用应用内购买从精简版升级到专业版的功能 我们有直接在 iOS 6 中
  • 使用 BufferedReader 读取行并检查文件末尾

    如果我的代码中有这样的东西 String line r readLine Where r is a bufferedReader 如果下一行是文件末尾 如何避免崩溃 即空 我需要阅读下一行 因为那里可能有一些我需要处理的东西 但如果没有 代
  • Git 中的文件限制是多少(数量和大小)?

    有谁知道Git对文件数量和文件大小的限制是多少 此消息来自可以帮助您解决一些其他限制 CVS 即它实际上最终几乎面向 一个文件 一次 模型 这很好 因为你可以拥有一百万个文件 然后只检查 其中一些 你甚至永远不会see对方的影响 999 9