Git LFS

2019/12/02 15:24
阅读数 157

Git LFS 简介

Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。

Git LFS可以把音乐、图片、视频等指定的任意文件存在 Git 仓库之外,而在 Git 仓库中用一个占用空间 1KB 不到的文本指针来代替文件的存在。

通过把大文件存储在 Git 仓库之外,可以减小 Git 仓库本身的体积,使克隆 Git 仓库的速度加快,也使得 Git 不会因为仓库中充满大文件而损失性能。

要使用 Git LFS 只需要经过一次下载安装后,指定需要由 Git LFS 管理的文件即可。

LFS 对目录是不生效的(但在git远程仓库也是提示LFS)

原理:不同于git每次保存diff,对于git来说,如果是模型文件或者一些设计大文件,改变一点,对于仓库来说会增加很大的体积。对于git lfs来说,在使用git lfs track命令后,git push的时候,git lfs会截取要管理的大文件,并将其传至git lfs的服务器中,从而减小git仓库的体积。

Git LFS 下载和安装

注意:安装 Git LFS 需要 Git 的版本不低于 1.8.5

Windows 系统

通过https://git-lfs.github.com/下载 Git LFS 安装包。
双击安装包,打开安装 git-lfs
在命令行中执行 git lfs install(需要确认 git-lfs 命令已经被包含在环境变量中)

Linux 系统

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install

Mac OS 系统

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git-lfs
git lfs install

GIT LFS配置

注: Git version > 1.8.5 如未安装LFS,拉取到本地LFS文件将是约1K的ASCII text文本文件(但通过du -sh查看目前的大小此目录依旧很大,那是因为.git/objects 目录存的git log文件占用)。

使用 git lfs track 追踪需要使用 Git LFS 管理的文件。如: 运行命令:git lfs track "*.psd"

也可以手动编辑 Git 仓库根目录下的 .gitattributes 文件,如: 运行命令:vim .gitattributes *.psd filter=lfs diff=lfs merge=lfs -text

提交代码时需要将『.gitattributes 』文件也提交到仓库,提交完成后,执行git lfs ls-files命令可以查看 LFS 跟踪的文件列表。 运行命令:git lfs track

Listing tracked patterns
  *.psd (.gitattributes)

常用命令

查看当前使用Git LFS管理的匹配列表
git lfs track

使用Git LFS管理指定的文件
git lfs track "beta.csv"

不再使用Git LFS管理指定的文件
git lfs untrack "beta.csv"

枚举目前所有被Git LFS管理的具体文件
git lfs ls-files

查看当前Git LFS对象的状态,类似git status
git lfs status

检查当前所用Git LFS的版本
git lfs version

了解更多Git LFS的使用,可执行git lfs help命令查看帮助。
git lfs help
git lfs help  <子命令>

如果自己的相关工作不涉及到被 Git LFS 所管理的文件的话,可以选择只获取 Git 仓库自身的内容,而完全跳过 LFS 对象的获取。

git -c filter.lfs.smudge= -c filter.lfs.required=false clone https://git.xxx.com/xxxxx.git

如果起初获取代码时,没有一并获取 LFS 对象,而随后又需要这些被 LFS 管理的文件时,可以单独执行 LFS 命令来获取并签出 LFS 对象

git lfs fetch
git lfs checkout
或
git lfs pull

了解更多 Git LFS 的使用,可执行git lfs help命令查看帮助。

参考文档

GitHub GIT LFS Coding GIT LFS

展开阅读全文
git
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部