如何减小存储库的大小?

2023-12-06

我有很大的 git 存储库。而且 dotgit 文件夹的大小非常大。(对于我们的 3D 建模者来说,有 350GB - ty :))我的硬盘有 240GB 的可用空间。当我尝试运行此命令时:

git gc --prune=now --aggressive

我遇到一些错误:

can't allocate memory...lalala

我该怎么办?我应该去 git 服务器并在那里运行这个命令吗?


随着时间的推移,存储库可能提交了许多大文件。删除历史记录并没有真正的帮助,随着更多大文件的添加和处理,问题会再次出现,并且您将丢失工作的历史记录。

不要直接提交大文件,而是使用Git 大文件存储 (git-lfs)。这将允许您提交大文件并保留历史记录,而无需扩大存储库大小。

所有那些旧的提交怎么样?不要只是在任意日期删除您的历史记录,而是使用BFG 回购清理器从历史记录中清除大文件。这将允许您保留历史记录,同时仅删除最大的违规文件。

更好是你可以将两者结合起来! BFG 可以将您现有的大文件提交转换为最近添加的小 git-lfs 提交--convert-to-git-lfs. 这一切都记录在这篇博客文章中。这是两全其美的:您保留所有历史记录、所有文件,并且获得一个精简的存储库。完成后,使用git-lfs对于所有未来的大文件。

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

如何减小存储库的大小? 的相关文章

  • 无法从另一台计算机访问 git 分支

    基本上我看不到另一台计算机上的分支 我跑 git branch a 在家用电脑上我得到 C learn ror sample app filling in layout gt git branch a filling in layout m
  • 如何列出未推送的 Git 提交(本地但不在源上)

    如何查看我所做的 尚未推送到远程存储库的任何本地提交 偶尔 git status将打印出我的分支是X提交之前origin master 但不总是 这是我安装的 Git 的错误 还是我遗漏了什么 这给出了 origin master 和 HE
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • Git 与人工制品

    刚刚完成 NPM 和 Bower 的 Artifactory 设置 它非常容易使用 您只需更改存储库 URL 一切就正常了 查看有关如何让 Artifactory 与 github vcs 一起使用的文档 它看起来过于复杂 我想知道是否有人
  • Azure git 部署 - 第二个程序集中缺少引用

    我正在尝试将 Bitbucket 部署设置到 Azure 网站 我成功链接了 Bitbucket 和 Azure 但是当我推送到 Bitbucket 时 我在 Azure 站点上收到以下错误 如果我单击 查看日志 它会显示以下编译错误 D
  • 如何与其他用户共享 bitbucket 存储库?

    我正在使用 Bit 存储桶 并且我想与一位朋友分享我的存储库 我用的是免费的个人账户 似乎有一个选项可以在位桶中创建团队 但它说它将把我的帐户从个人帐户转换为团队帐户 我不要那个 我如何授予其他用户访问此存储库的权限 有一个共享链接选项 如
  • 如何将一个文件存储库上传到 Gist,并保留历史记录?

    我的计算机上有一个包含单个文件的 Git 存储库coins py 我如何才能将其作为 Github 上的要点来保存历史 这其实很简单 您可以将现有历史记录移动到 Gist 存储库中 就像将其移动到任何其他存储库中一样 创建要点 只需输入一些
  • Jenkins groovy - 如何从最新提交中检索标签?

    从中获取最新提交branchName 我们运行下面的代码 treeMapData git branch branchName credentialsId credential url gitLabServer projectName rep
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont
  • 如何在 git 交互式 rebase 中将提交与下一个提交合并?

    git rebase i允许通过以下方式将提交与前一个提交合并squash or fixup 这两个选项都需要至少一次提交pick ed 当一个人想要使用第一个提交但丢弃其提交消息时 情况怎么样 换句话说 如果我希望第一个提交与后续提交合并
  • Git 分支之间未跟踪的文件

    我一直在这里寻找答案 看来我可能只是对 git 分支应该如何工作做出了错误的假设 我有我的master分支 我创建了一个名为的功能分支profiles我正在对个人资料进行一些特定的工作 在处理配置文件时 我更改了 5 或 6 个文件 并添加
  • 如何 git checkout 提交并将子模块更新到该提交?

    我正在克隆一个带有子模块的项目并恢复到大约一年前的提交 git clone recursive branch 5 6 https codereview qt project org pyside pyside setup cd pyside
  • Git-svn:批量删除孤立的远程分支

    我正在处理的 SVN 项目 通过 git svn 有经常创建的分支 然后与主干重新集成 然后删除 现在项目大约有10个分支没有被删除 但是在git中 gitbranch r显示大约有50个 我可以一次删除这些 检查它们是否仍然存在于 svn
  • 未签出...捆绑安装无法修复帮助!

    https github com intridea omniauth git at master is not checked out Please run bundle install Bundler GitError 那我该怎么办 捆绑
  • Git 用户配置文件 - 自定义忽略

    我们有一个由 5 名开发人员组成的团队致力于硬件项目 我们有一个 user config h 文件 其中包含每个用户的特定环境和偏好的 defines 例如他们使用的硬件版本 是否应该打开声音等 目前 该文件位于我们的 gitignore
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • 如何修复 Centos 上的 Git Segmentation 错误

    我收到分段错误错误 无法在服务器上提取代码 Centos 7 这就是我遇到错误的方法 通过使用以下命令来验证我的服务器是否使用 bitbucket 进行身份验证 ssh T email protected cdn cgi l email p
  • 防止在 Git 中签出

    我目前正在研究使用 Git 管理 OpenInsight 应用程序的源代码 由于 OI 代码存储在数据库表中 因此需要进行一定量的手动工作才能将源代码导出为文本 反之亦然 到目前为止 我已经成功地使用 Git 挂钩自动化了很多这项工作 但是
  • git 索引到底包含什么?

    Git 索引到底包含哪些内容 可以使用什么命令查看索引内容 感谢您的所有回答 我知道索引充当暂存区 提交的内容是在索引中而不是工作树中 我只是好奇索引对象由什么组成 我猜它可能是文件名 目录名 SHA 1 对的列表 也许是一种虚拟树 在 G
  • 配置 Eclipse/EGit 来跟踪上游存储库

    我正在使用 EGit 如新的 Eclipse 4 2 Juno 版本中提供的 我在 GitHub 上有一个存储库 是从另一个上游存储库分叉的 当我从 Github 上的存储库在 Eclipse 中创建项目时 它正确设置origin指向 Gi

随机推荐

  • 删除Golang中包含某些子字符串的行

    如何删除以某些子字符串开头的行 byte in Ruby通常我会做这样的事情 lines lines split n reject r r include substring join n 如何执行此操作Go 您可以使用正则表达式来模拟 r
  • Python 中模块的导入文件夹

    python 中是否可以从文件夹 包中获取模块列表并导入它们 我希望能够从类内的函数中执行此操作 以便整个类都可以访问它们 可能是从 init 方法 任何帮助将不胜感激 See the 模块文档 唯一的解决方案是包作者提供明确的 包的索引
  • 记住用户从一页到下一页的选择

    在我的网站上 用户有多种选项 例如语言 日期和区域 当用户单击其中任何一个都很好时 网站会适应特定的选择 但是当他们转到另一个页面时 他们会失去所有选择 如果我找到一种方法在整个访问过程中保留它们 那就太好了24小时 例如 鲍勃进入我的网站
  • Android Studio 的数据绑定模板?

    我决定在我的 Android 项目中使用 DataBinding 库 是否有任何插件 代码模板可用于安装到 Android Studio 中 以使用 Android Studio 的向导自动生成的与 DataBinding 兼容的代码添加新
  • PHP 简单的 html dom 解析器 - 查找单词

    我使用 PHP 简单 html dom 解析器库 我只想将所有 manteau 单词替换为 此处查找单词 这是我下面的代码 它不适用于不在标签中的单词 它仅适用于强标签中的 manteau 一词 如何解析所有节点文本 Note str re
  • 如何将证书添加到 WebClient (C#)?

    我知道向 HttpWebRequest 添加证书非常简单 但是 我还没有找到使用 WebClient 进行等效操作的方法 基本上 我想使用 WebClient 发送带有特定证书的 POST 您将如何使用 WebClient 完成这个确切的代
  • Erlang emysql iPhone Emoji 编码问题

    我正在尝试使用 Erlang 将 iPhone 客户端应用程序中的文本 带有表情符号 存储在 MySQL 数据库上 进入 varchar 列 我曾经使用 C 和 mysqlpp 完成的套接字连接服务器来完成此操作 效果很好 这是完全相同的数
  • 是否有类似 Perl 的 Win32::FileNotify for Linux 或 OS X 的东西?

    我一直在使用Win32 文件通知在 Windows 上 我很想知道 Linux 和 OS X 上是否有类似的东西 我无法使用 Google 找到这样的模块 这里有人知道这样的事情吗 文件 更改通知听起来像是一种跨平台的方式来做到这一点
  • 在编辑器 Xamarin Forms 中设置 CursorPosition

    我们如何设置CursorPosition in Editor 我们可以设置CursorPostion in Entry 但是如何设置Editor 我知道我们可以使用 Xamarin Forms 中的自定义渲染器来做到这一点 但是如何实现呢
  • DateTimeInput 在 django 中被渲染为简单的文本输入

    我试图从用户那里获取日期时间输入 但日期输入的数据类型被设置为 type text 以下是代码片段 模板
  • 在进行单元测试时,应该如何处理对象初始化的测试?

    因此 对于我遇到的大多数单元测试实用程序 您通常可以访问某种 SetUp 和 TearDown 函数 虽然我发现这对于几乎每个单元测试都非常方便 但我想知道应该如何处理对象初始化的测试 我的意思是 在几乎所有其他测试中 您只需让 SetUp
  • date( ) 返回 1970-01-01

    我正在使用具有以下格式 mm dd yyyy 的 jquery 日期选择器 但我需要将它设置为 yyyy mm dd 的 sql 数据库 所以我使用它 date date Y m d strtotime startdate 与以下 quer
  • IE 中的可编辑性能

    我发现使用 jeditable 的 IE 页面设置时间非常短 该页面有一个表 其中每行有 13 个 span 元素 jeditable 应用到这些元素上 如下所示 document ready function entry pl span
  • 动态加载的 Web 用户控件在回发时隐藏

    我有一个网络自定义控件
  • 当位于网站的根目录时,Visual Studio 调试器不会附加

    当我从环境中运行时 我的 Visual Studio 2008 调试器未附加到默认网站的根目录 这是一个问题 我有一个在 Visual Studio 2008 SP1 上运行的 NET 3 5 Web 应用程序项目 我已将项目设置为 使用本
  • powershell环境变量的返回值

    我在变量中有环境变量的名称 我想获取该值 我怎么做 我试过了 PS C Users Joe gt v USERDOMAIN PS C Users Joe gt env v At line 1 char 2 env v Variable re
  • 重新安装应用程序时旧数据出现在 SQLite 数据库中

    我有一个 Xamarin Forms 应用程序 它使用 SQLite 数据库来存储用户数据 包括我用于通过 REST API 进行身份验证的登录令牌 我在 Android 上遇到一个奇怪的问题 即通过从 Visual Studio 中重新部
  • 将上下文传递给 JobService Android JobScheduler

    我正在构建一个应用程序 将 url 和 Json 存储在本地 SQLite 数据库中 然后安排 JobService 在JobService中 我从db中一一取出所有请求并执行它们 一旦它们被执行 我只能在 JobService 内得到响应
  • 为什么我的功能在使用 goto 时给出了“'}' 标记之前的预期主表达式”?

    我的函数在使用 goto 时给了我 标记之前的预期主表达式 我不知道为什么 在将这段代码放入函数之前 它在 main 中按原样运行 当我用 break 替换 goto 时它起作用 但我需要知道这是为什么 void fileInputLoop
  • 如何减小存储库的大小?

    我有很大的 git 存储库 而且 dotgit 文件夹的大小非常大 对于我们的 3D 建模者来说 有 350GB ty 我的硬盘有 240GB 的可用空间 当我尝试运行此命令时 git gc prune now aggressive 我遇到