Git LFS的使用

Git LFS

简介

帮助文档:https://coding.net/help/doc/git/git-lfs.html

Git LFS是Github开发的一个Git的扩展,用于实现Git对大文件的支持

LFS是Git的一个扩展,所以没有改变Git的工作方式,其是把指定需要LFS管理的文件替换成了一个指针文件交给Git进行版本管理
在pull/push等这些操作中,LFS又通过LFS服务器把这些文件的真身给下载或上传回来
通过这样的手段,使得本地仓库的体积大大减小,而不会出现随着这些文件的版本增多而体积剧烈膨胀的情况
这种把存储负担转移给了服务器的做法,让其强依赖于LFS服务器,本地仓库并不是一个完整的仓库

使用目的

在游戏开发过程中,设计资源占用了很大一部分空间,像png、psd等文件是二进制(blob)的,体积也很庞大
但Git的diff/patch等是基于文件行的,对于二进制文件来说,Git需要存储每次commit的改动
每次当二进制文件修改,发生变化的时候,都会产生额外的提交量,导致clone和pull的数据量大增,在线仓库的体积也会迅速增长

没使用Git之前,一般二进制文件和源代码分成两块,分别存放到不同的SVN仓库上(防止二进制文件中有病毒感染服务器,所以进行隔离)
当切换到Git上进行版本管理,就可以使用git lfs来管理这些二进制文件,这样就可以让源码和二进制文件和谐共存于一处,从而不像以前那样,需要分别做两次更新

LFS(Large File Storage)就是为了解决这一问题而产生的工具,它将你所标记的大文件保存至另外的仓库,而在主仓库仅保留其轻量级指针
那么当检出版本时,根据指针的变化情况下更新对应的大文件,而不是在本地保存所有版本的大文件

安装

Windows下常用的Git for Windows和Source Tree都已经集成了LFS,无需另外安装,可以运行命令git lfs查看

注意:安装Git LFS需要Git的版本不低于1.8.5
Linux
  1. curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
  2. sudo apt-get install git-lfs
  3. git lfs install
Mac
  1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" // 安装HomeBrew 
  2. brew install git-lfs
  3. git lfs install
Windows
  1. 下载安装windows installer
  2. 运行windows installer
  3. 在命令行执行 git lfs install

使用

  1. 执行 git lfs install 开启lfs功能
  2. 使用 git lfs track 命令进行大文件追踪 例如git lfs track "*.png" 追踪所有后缀为png的文件
  3. 使用 git lfs track 查看现有的文件追踪模式
  4. 提交代码需要将gitattributes文件提交至仓库. 它保存了文件的追踪记录
  5. 提交后运行git lfs ls-files 可以显示当前跟踪的文件列表
  6. 将代码 push 到远程仓库后,LFS 跟踪的文件会以‘Git LFS’的形式显示
  7. clone 时 使用'git clone' 或 git lfs clone均可
首次使用
  • git lfs install:开启LFS功能 // 第一次使用前需要运行下git lfs install(只要运行一次,以后都不需要了)
日常使用
  • git lfs track ‘*.?’:进行大文件追踪 // 需要用LFS管理的文件要添加到追踪列表里,一般而言,可以把某个类型的文件统一用LFS管理,例如把dll文件用LFS管理git lfs track '*.dll'、追踪所有后缀为png的文件并把png文件用LFS管理git lfs track "*.png" - 此时,仓库的根目录下会自动创建.gitattribute文件,里面就记录了使用lfs的文件
  • git lfs track:查看现有的文件追踪模式 // 后续添加新的类型可以用git lfs track命令,也可以直接编辑.gitattribute文件 - 注意:.gitattribute文件需要添加到git仓库中进行版本管理
  • 文件追踪后,后续所有操作与Git普通操作一致
辅助命令
  • git lfs ls-files:查看当前有哪些文件是使用LFS管理的

 

转载于:https://www.cnblogs.com/YSPXIZHEN/p/11422473.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值