写点什么

Git 大文件存储将帮助 Git 处理大型二进制文件

2015 年 4 月 17 日

GitHub 宣布,作为开源的 Git 扩展,Git 大文件存储(Large File Storage,简称 LFS)的目标是更好地把“大型二进制文件,比如音频文件、数据集、图像和视频”集成到 Git 的工作流中。

众所周知,Git 在存储二进制文件时效率不高,因为:

Git 默认会压缩并存储二进制文件的所有完整版本,如果二进制文件很多,这种做法显然不是最优。

Git LFS 处理大型二进制文件的方式是用“文本指针”替换它们。这些文本指针实际上是包含二进制文件信息的文本文件。文本指针存储在 Git 中,而大文件本身通过 HTTPS 托管在 Git LFS 服务器上。

Git LFS 向 Git 中添加了一条新命令lfs,支持以下参数:

  • config:显示 Git LFS 的配置。
  • init:初始化 Git LFS。
  • logs:显示 git-lfs 中的错误。
  • track:向 Git 仓库中添加一个大文件;允许指定文件扩展名。
  • untrack:从 Git LFS 中移除一个文件。
  • push:把当前监控的文件推送到 Git LFS 服务器。
  • status:显示产生改动的 Git LFS 对象的路径。

如果要向现有仓库中添加一个大文件,你可以:

复制代码
git lfs track "*.pdf"
git add file.pdf
git commit -m "Add design file"
git push origin master

根据 GitHub 官方消息,目前 Git LFS 服务器 API 的实现只有两种:引用服务器实现以及GitHub.com,后者目前还不可用。GitHub 已经公布了免费的LFS 计划,最多允许“1GB 免费文件存储空间和每月1GB 流量”。容量更大的套餐需要付费,但是具体费用还未公布。

在Git LFS 出现之前,开发者就已经可以使用 git-annex 管理大型二进制文件。后者是一个 Git 扩展,原理和 Git LFS 类似,把文件内容存储在.git/annex 中,而把对应位置的符号链接存储在 Git 仓库中。

查看英文原文: Git Large File Storage Promises to Extend Git to Large Binary Files


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流。

2015 年 4 月 17 日 09:098890

评论

发布
暂无评论
发现更多内容

Windows Terminal添加右键菜单

simon

Windows Terminal 右键菜单 终端 开发者工具 命令行

用行动解决情绪,情绪永远是累赘

熊斌

情绪控制 团队协作

这里有一个慢 SQL 查询等你来优化

石头

MySQL 数据库 性能优化 后端

C++中glog源码剖析以及如何设计一个高效 log模块

helloworld

c++ 编程语言

我愿沉迷于学习,无法自拔(二)

孙瑜

深度思考 个人成长

每天打卡python面试题 - 在一行中捕获多个异常(块除外)

志学Python

Python 面试题 python 爬虫 python3.7

3NF建模&维度建模

常海峰

如何写排版优雅简洁的文章?

池建强

写作 排版

爬虫(108)Python 3.8的超酷新功能(接近一万字,请耐心享用,而且建议收藏)

志学Python

python 爬虫 python3.x python升级

如何优雅的接收正在运行古董代码?

冰临深渊

项目管理 架构

HashMap 的 7 种遍历方式与性能分析

Bruce Duan

Java 性能 hashmap 遍历

运维常见问题及排查思路

编程随想曲

运维

什么是 MQ ?

itfinally

系统设计 MQ

目标:2020年学会写文章

wiflish

初步了解MyBatis

Java收录阁

mybatis

Go语言获取程序各类资源的绝对路径的方法

良少

Python go 路径 动态 绿色

每日一道python面试题 - Python的函数参数传递

志学Python

Python 爬虫 面试题 python 爬虫 python3.x

kettle(Pentaho Data Integration) 使用"最佳"实践

稻草鸟人

Java kettle

周日福利来了

志学Python

Python 福利 python教程 python视频教程

爬虫(107)Python 3.7的超酷新功能(接近一万字,请耐心享用,而且建议收藏)

志学Python

Python 最佳实践 python 爬虫 python3.7 python升级

Kafka系列第1篇:Kafka是什么?它能干什么?

z小赵

大数据 kafka 推荐 实时计算

KubeFATE: 用云原生技术赋能联邦学习(一)

亨利笔记

人工智能 学习 FATE KUBEFATE

关于5G RCS的产品猜想

机器鸟

高仿瑞幸小程序 01 初建项目,引入Vant Weapp

曾伟@喵先森

小程序 微信小程序 前端 vant

太极宗师与华晨宇

伯薇

水平思考力 电视剧 综艺节目 歌手

周报 01|多点分享,少点创作

强劲九

学习 读书

GroupBy 用法的三重境界,面试终结者

Hyun

数据库 sql 大数据 性能优化 数据分析

Hive 中的 GroupBy, Distinct 和 Join

tkanng

sql 大数据 hadoop hive

Kafka系列第2篇:安装测试

z小赵

大数据 kafka 推荐 实时计算

​成功的人,都是 “狠角色”

非著名程序员

程序员 提升认知 成功学 自律

MyBatis核心功能介绍

Java收录阁

mybatis

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Git大文件存储将帮助Git处理大型二进制文件-InfoQ