更新时间:2023-12-04 GMT+08:00
Git LFS使用
背景信息
- 代码托管支持Git LFS(Large File Storage,大文件存储)协议,可以把音乐、图片、视频等指定的任意大文件资源存储在Git仓库之外,对于使用者而言,类似在操作一个完整的Git仓库,非常方便。通过将大文件存储在Git原有的数据结构之中,可以减小Git仓库本身的体积,使克隆Git仓库的速度加快,也使得Git不会因为仓库中充满大文件而损失性能。
- 当您要上传的文件单个超过200MB时,需要使用Git LFS。
- 使用操作包含以下内容:
安装Git LFS
不同操作系统的安装方法如下表所示。
操作系统 |
安装方法 |
---|---|
Windows |
安装不低于Git 1.8.5版的Git客户端,然后在命令行中执行: git lfs install |
Linux |
根据自己的操作系统和cpu架构在PackageCloud网站下载对应的安装包。 先解压安装包,再执行install.sh脚本进行安装,然后执行如下命令检查是否安装成功: git lfs version |
macOS |
首先安装Homebrew软件包管理工具,然后在命令行中执行: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew install git-lfs $ git lfs install |
配置追踪文件
配置追踪文件方法如下所示。
场景 |
方法 |
---|---|
追踪所有后缀名为“.psd”的文件 |
追踪所有后缀名为“.psd”的文件: git lfs track "*.psd" |
追踪单个文件 |
追踪单个文件: git lfs track "logo.png" |
查看已追踪的文件 |
查看已追踪的文件,可以通过git lfs track,或通过查看“.gitattributes”文件,获取详情: $ git lfs track Listing tracked patterns *.png (.gitattributes) *.pptx (.gitattributes) $ cat .gitattributes *.png filter=lfs diff=lfs merge=lfs -text *.pptx filter=lfs diff=lfs merge=lfs -text |
提交大文件
提交代码时需要将“.gitattributes”文件也提交到仓库,提交完成后,执行git lfs ls-files命令可以查看 LFS 跟踪的文件列表。
$ git push origin master Git LFS: (2 of 2 files)12.58 MB / 12.58 MB Counting objects: 2, done. Delta compression using up to 8 threads. Compressing objects: 100% (5/5), done. Writing objects: 100% (5/5), 548 bytes | 0 bytes/s, done. Total 5 (delta 1), reused 0 (delta 0) To <URL> <SHA_ID1>..<SHA_ID2> master -> master $ git lfs ls-files 61758d79c4 * <FILE_NAME_1> a227019fde * <FILE_NAME_2>
克隆包含Git LFS文件的远程仓库
使用git lfs clone命令克隆包含“Git LFS”文件的远程仓库到本地:
$ git lfs clone <URL> Cloning into '<dirname>' remote: Counting objects: 16,done. remote: Compressing objects: 100% (12/12),done. remote: Total 16 (delta 3), reused 9 (delta 1) Receiving objects: 100% (16/16),done. Resolving deltas: 100% (3/3),done. Checking connectively...done. Git LFS: (4 of 4 files) 0 B / 100 B
父主题: 更多Git知识