上传超过100M的文件到github

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 升级到iOS9后,我发现我们项目中的环信不好用了,需要升级sdk。结果升级完毕之后发现传不到github上了,原来...
    千煌89阅读 12,609评论 5 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,604评论 19 139
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 14,651评论 9 163
  • 早上居然下雨了,迷迷糊糊的淅淅沥沥,就是睁不开眼睛。不知道为什么总也睡不醒,我很讨厌自己这种状况。 看到一个朋友说...
    Duras808阅读 1,001评论 0 0
  • 正如现实主义文学所应具有的特征一样,于连只是《红与黑》中呈现给读者们的一个处于七月革命前夕的典型人物。也正像司汤达...
    冉之阅读 3,945评论 0 7