git lfs的使用
what
git lfs是git的一个扩展,用于实现git对大文件的支持。
why
在一些开发过程中,存在一些体积较大的二进制文件,但git的diff/patch等是基于文件行的,对于二进制文件来说,git需要存储每次commit的改动,每次当二进制文件修改,发生变化的时候都会产生额外的提交量,导致clone和pull的数据量大增,在线仓库的体积也会迅速增长。
how
LFS(Large File Storage) 就是为了解决这一问题而产生的工具。它将你所标记的大文件保存至另外的仓库,而在主仓库仅保留其轻量级指针。那么在你检出版本时,根据指针的变化情况下更新对应的大文件,而不是在本地保存所有版本的大文件。
安装
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
sudo apt-get install git-lfs
git lfs install
使用
- 执行 git lfs install 开启lfs功能
- 使用 git lfs track 命令进行大文件追踪 例如git lfs track “*.png” 追踪所有后缀为png的文件
- 使用 git lfs track 查看现有的文件追踪模式
- 提交代码需要将gitattributes文件提交至仓库. 它保存了文件的追踪记录
- 提交后运行git lfs ls-files 可以显示当前跟踪的文件列表
- 将代码 push 到远程仓库后,LFS 跟踪的文件会以『Git LFS』的形式显示:
- clone 时 使用’git clone’ 或 git lfs clone均可