文档章节

Git LFS(学习笔记)

ND小龙
 ND小龙
发布于 2017/07/27 01:30
字数 1200
阅读 65
收藏 0
点赞 0
评论 0

Git大文件储存 LFS

LFS(Large File Storage)

 

查询资料了解到,GitHub在2015年中推出了Git大文件储存LFS,相继GitLab在2015年末也宣布支持了LFS。

 

开发者可以通过Git LFS支持大文件存储,它支持大的二进制文件,例如音频采样、数据集、图形和视频等。

因为对分布式版本管理系统来说,管理“大文件”往往不切实际。

GitHub给出他们的解决方案LFS是:借用文本指针来替换大文件。

 

LFS特性

  • 大文件存储:支持Git中几GB大小的文件;
  • 仓库空间足:Git仓库很足,可很好的管理外部文件;
  • 快速复制和提取:下载数据量较少,让复制和读取大文件更快;
  • 一样的Git工作流:针对二级存储系统或工具集并未产生额外的指令
  • 相同的接入控制和权限:针对Git仓库的大文件,远程主机和GitHub上拥有一样的接入控制和权限。

 

 

安装 LFS

LFS是作为一个开源扩展,尚未加入 Git 的核心二进制文件,因此需要在服务端、客户端提前进行安装。

服务端

目前并不是所有主机服务器都支持 LFS。 需要使用 GitLab.com 或 GitLab CE 或 EE 的中间版本,因为它们已经支持LFS,因此需要管理员权限进入,开启LFS选项。

客户端(用户机器)

本地安装的 Git 也需要支持 LFS。 

使用命令行来运行 Git,可以选择以下方法来安装 LFS:

  • 二进制安装包:最新版本的 binary packages, 支持 Windows,Mac,Linux 以及 FreeBSD 。

  • Linux:Debian 和 RPM 的软件包可从 PackageCloud 获得。

  • macOS:使用 Homebrew 执行“brew install git-lfs”来安装,也可以使用 MacPorts 执行“port install git-lfs”安装.

  • Windows:可以使用包管理器 Chocolatey 执行“choco install git-lfs”来安装。

使用 LFS 追踪文件

没有特别说明的情况下,LFS 不会处理大文件问题,因此,我们必须明确告诉 LFS 该处理哪些文件。

让我们回到“大 Photoshop 文件”的示例, 我们可以使用“lfs track”命令来告诉 LFS 处理“design.psd”文件:

git lfs track "design-resources/design.psd"

乍一看,这条命令好像没生效,不过,你会看到项目根目录下新建了一个新文件 ".gitattributes" (如果已存在,将会被修改),".gitattributes" 文件记录了我们用 LFS 追踪的所有的文件路径。

cat .gitattributes 
design-resources/design.psd filter=lfs diff=lfs merge=lfs -text

棒棒哒!在这之后 LFS 会处理这个文件。我们接下来只要像往常那样把这个文件提交到仓库。值得注意的是,".gitattributes" 文件也需要提交到仓库,操作和提交其他修改文件一样:

git add .gitattributes
git add design-resources/design.psd
git commit -m "Add design file"

 

追踪文件路径

添加单一文件如上所示就可以。但是,比如说,如果你想追踪项目里所有后缀名为 indd 的文件呢?放心,你不用手动的添加每个文件。LFS 允许你定义文件路径,就像忽略文件时的用法那样。举个例子,下面的命令会告诉 LFS 追踪所有的 InDesign 文件 — 已经存在的和以后添加的。

git lfs track "*.indd"

你也可以告诉 LFS 追踪整个文件夹里的所有内容:

git lfs track "design-assets/*"

 

追踪文件概述

有时候,你可能想知道到底有哪些文件在被 LFS 追踪。你可以简单的看看.gitattributes文件。然而,它们不是真实的文件,而是包含一些规则和理论的文件:某些文件可能会漏掉,例如由于拼写错误或者过分严格的规则。

想要查看你当前正在追踪的实际文件的列表,可以使用 git lfs ls-files 命令:

git lfs ls-files
194dcdb603 * design-resources/design.psd

 

尽早追踪

记住 LFS 并没有改变 git 本身的原理:被提交到仓库中的文件还会留在那儿。改变项目的提交历史很困难(也有风险)。

这意味着你应该在文件没有提交到仓库前就让 LFS 进行追踪。

不然,它就成了项目历史的一部分 - 令项目增大数 MB 或数 GB 的大小...

初始化仓库时要选择配置要追踪的文件规则的完美时机(就跟配置忽略文件一样)。

 

总结

LFS 有一个不错的Git开源扩展,它的优势在于针对几G甚至十几G大小的流媒体文件,可以像之前一样版本管理一样保持正常的 Git 工作流程:暂存,提交,push,pull 和其他所有的操作。 

本文转载自:http://www.oschina.net/translate/getting-started-with-git-lfs-tutorial

共有 人打赏支持
ND小龙
粉丝 10
博文 45
码字总数 2295
作品 0
福州
【git lfs】大文件存储

git 管理大型文件 http://static.open-open.com/lib/uploadImg/20150409/20150409094350_39.gif 常用命令 开启lfs 使用git lfs 查看lfs状态 命令帮助 异常情况 参考链接...

创意总监
2016/07/29
67
0
Git LFS(Large File Storage)

Git Large File Storage (LFS),是GitHub推出的基于Git的扩展,专门用来存储大文件。 https://git-lfs.github.com/ Git Large File Storage (LFS) replaces large files such as audio samp......

donhui
2016/05/11
455
0
Git LFS 2.3.0 发布,Git 对大文件的支持

Git LFS 2.1.0 发布了。Git LFS 现在会告知 LFS 是否在跟踪大文件,还是在由 Git 存储,或是两者的结合。Git LFS 2.1.0 通过 .gitconfig 或 .lfsconfig 引入对 URL 样式配置的支持。 对于适用...

达尔文
2017/09/15
754
1
linux 系统常用的C语言函数库

pkg-config --list-all 查看系统己安装库(yum install pkgconfig sudo apt-get install pkgconfig) Linux From Scratch http://man.chinaunix.net/linux/lfs/htmlbook/index.html LINUX 文档......

慎道
2011/07/12
0
0
Git LFS 1.0 发布,Git 的大文件支持

Git LFS 1.0 发布,现已提供给 GitHub.com 的所有仓库。 Git LFS 是开源 Git 扩展,GitHub 在 4 月份发布,集成到 Git 工作流中。 Git LFS 1.0 包含一些新特性和 bug 修复,值得关注的改进:...

oschina
2015/10/02
2.8K
7
Github 宣布 Git Large File Storage(LFS)

分布式版本控制系统Git在版本控制大文件上有所欠缺,基于Git的代码托管平台Github宣布了扩展Git Large File Storage (LFS),改进了大文件的版本控制,允许开发者在工作流中整合大的二进制文件...

oschina
2015/04/10
6.3K
31
Git LFS 2.1.0 发布,Git 对大文件的支持

Git LFS 2.1.0 发布了。 Git LFS 现在会告知 LFS 是否在跟踪大文件,还是在由 Git 存储,或是两者的结合。Git LFS 2.1.0 通过 .gitconfig 或 .lfsconfig 引入对 URL 样式配置的支持。 对于适...

达尔文
2017/04/29
664
1
GitLab 宣布支持 Git 大文件存储 (Git LFS)

GitLab 宣布支持 Git LFS,Git 大型文件存储。随着越来越多的开发者使用 Git 和 GitLab,其他的一些工业也开始使用 GitLab,比如版本化视频文件,图像,甚至是微芯片设计,团队需要一个平台来...

oschina
2015/11/25
5.5K
25
Git LFS API 服务器--LFS Test Server

LFS Test Server 是一个实现了 Git LFS API 的服务器。它的目的是用于测试 Git LFS 客户端,而且它现在还不在生产就绪的状态。LFS Test Server 用 GO 语言写成,在 Mac、Windows、Linux 和 ...

孔小菜
2015/06/11
520
0
Unity 3D 开发《王者荣耀》:Hello World

Unity 安装 Unity 官方网站:https://unity3d.com 点击右上角的 获取Unity 系统要求 OS: Windows 7 SP1+, 8, 10, 64-bit versions only; Mac OS X 10.9+. GPU:有DX9(着色器模型2.0)功能的...

iOSDevLog
05/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

sklearn学习笔记之简单线性回归

简单线性回归 线性回归是数据挖掘中的基础算法之一,从某种意义上来说,在学习函数的时候已经开始接触线性回归了,只不过那时候并没有涉及到误差项。线性回归的思想其实就是解一组方程,得到...

wangxuwei
7分钟前
0
0
feign之动态interceptor(二)

背景 上文提到了按照不同的feignClient可以根据多个不同的key来进行多个不同的bean的配置 那么我们如何完成多个interceptor的配置呢? 分析 我们刚提到多个配置的玄机就在FeignClientProper...

Mr_Qi
9分钟前
1
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

问题终结者
33分钟前
0
0
Apache配置时.htaccess失效不起作用的原因分析

.htaccess 失效的原因 1. 重写规则有问题,检查自己的重写规则 2.Apache配置问题,配置中没有配置启用 rewrite a2enmod rewrite 3.网站配置文件没有启用配置需要配置 000-default.conf <Dire...

TU-DESGIN
54分钟前
1
0
两个求最大公约数C/C++算法实现

#include<stdio.h> #include<time.h> #include <iostream>using namespace std;//求最大公约数 LCD(Largest Common Division)//短除法 //m=8251, n=6105; int LCD_ShortDiv(int m, ......

失落的艺术
59分钟前
1
0
QueryPerformanceCounter

windows的Sleep函数,睡眠线程指定毫秒数,可以用来做毫秒延时。 对于微秒延时,没有一个现成的函数,但是可以通过 QueryPerformanceFrequency QueryPerformanceCounter 来间接实现。原理就是...

开飞色
今天
1
0
log4j2使用AsyncRoot不显示行号问题处理

<AsyncRoot level="info" includeLocation="true"> <AppenderRef ref="File"/></AsyncRoot><!--1.异步logger,还需要在pom.xml中添加disruptor的依赖。2.includeLocation结合异......

小翔
今天
3
0
安卓手机上 K 歌,声音延迟怎么解决?

这篇文章可以为你提供一个解决录音和播放同步问题的思路,而且解决了声音从手机传输到耳机上有延时的问题。 初识音频 在开始之前,我先简单介绍一下音频相关的基础知识,方便下文理解。 我们...

编辑部的故事
今天
2
0
使用token实现在有效期内APP自动登录功能

使用token实现在有效期内APP自动登录功能 http://sevennight.cc/2016/07/19/auto_login_impl.html

风云海滩
今天
3
0
Spring Boot集成RabbitMQ发送接收JSON

默认情况下RabbitMQ发送的消息是转换为字节码,这里介绍一下如何发送JSON数据。 ObjectMapper 最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON工具类把对象转换为JSON格式,然后发送...

小致dad
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部