中文 ▾
git-backfill 手册的本地化版本
主题 ▾
最新版本 ▾ git-backfill 上次更新于 2.49.0
git-backfill 手册的更改
设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
描述
可以使用 git clone --filter=blob:none
创建无 blob 的部分克隆,然后配置本地仓库,以便 Git 客户端避免下载 blob 对象,除非本地操作需要它们。 这最初意味着克隆和后来的获取会下载可访问的提交和树,但不会下载 blob。 稍后更改 HEAD
指针的操作(例如 git checkout
或 git merge
)可能需要下载缺失的 blob 才能完成其操作。
在最坏的情况下,计算 blob 差异的命令(例如 git blame
)会变得非常慢,因为它们会下载缺失的 blob,在单个 blob 请求中满足缺失的对象,因为 Git 命令需要它。 这会导致多个下载请求,并且 Git 服务器无法在这些对象之间提供增量压缩。
git backfill
命令提供了一种让用户请求 Git 下载缺失的 blob(带有可选过滤器)的方式,以便可以批量下载表示文件历史版本的缺失 blob。 backfill
命令尝试通过将出现在同一路径上的 blob 分组来优化请求,希望在服务器发送的 packfile 中获得良好的增量压缩。
通过这种方式,git backfill
提供了一种将大型克隆分解为更小块的机制。 从使用 git clone --filter=blob:none
的无 blob 部分克隆开始,然后在本地仓库中运行 git backfill
提供了一种通过几个较小的网络调用下载所有可访问对象的方式,而不是在克隆时下载整个仓库。
默认情况下,git backfill
下载从 HEAD
提交可访问的所有 blob。 可以使用各种选项来限制或扩展此集合。
此命令是实验性的。 它的行为在未来可能会改变。
GIT
属于 git[1] 套件的一部分