1. Git LFS 简介
Git LFS: An open source Git extension for versioning large files
Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.
Git LFS (Large File Storage)是一个开源的Git大文件版本控制的解决方案和工具集,工具自身是基于Golang进行实现,并在Github上开源。原理上是通过对Git客户端进行扩展的方式,从而集成并兼容了原生的Git客户端。Git LFS良好的设计,让用户感觉在对大文件处理过程中,与普通Git的使用方式上没有任何差别,也就是说,在使用方式上Git LFS对用户是完全透明的。
参考文档:
2. 下载和安装Git LFS
2.1. 官方脚本安装
1、下载适合系统的 git-lfs/releases
2、解压安装
解压后,执行 install.sh
脚本,这个脚本会做两个事情:
- 在
$PATH
中安装Git LFS的二进制可执行文件 - 执行
git lfs install
命令,让当前环境支持全局的LFS配置
安装成功,会输出:
1 | Git LFS initialized. |
2.2. Linux
参考文档:Git LFS - Installation instructions
Linux Debian:
1 | curl -s http://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash |
RPM packages:
1 | curl -s http://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash |
2.3. MacOS
1 | brew install git-lfs |
2.4. Windows
目前lfs已经集成在了Git for Windows 中,直接下载和使用最新版本的Windows Git即可。
3. 让仓库支持Git LFS
1 | git lfs install |
如果官方脚本安装,那么不需要执行这条命令。
4. 使用Git LFS
1、设置LFS追踪 mp4 类型的文件
1 | git lfs track "*.mp4" |
track 命令实际上是修改了仓库中的 .gitattributes
文件。
2、查看LFS追踪的文件类型
1 | git lfs track |
3、提交 .gitattributes
文件
1 | git add .gitattributes |
4、放入一个 mp4 类型的文件到仓库中
5、提交并推送 mp4 类型文件
1 | git add test.mp4 |
推送后,查看该mp4文件,会显示 Stored with Git LFS 。
注意:github中fork的仓库是不支持LFS上传大文件的,详情参考:can not upload new objects to public fork。如果想要上传大文件,需要源仓库管理员授权push的权限。