由于git是一个分布式设计,因此本地的版本库是一个全量的库。git主要用来托管文本类的文件,但工程中难免会有依赖库、资源文件等二进制文件。git对于二进制文件差分是束手无策的,只能全量存储。如果二进制文件比较多或者版本更新频繁,势必会导致我们的仓库达到不可维护的状态。想象在国内“恶劣”的网络环境下,clone一个几百M甚至到几G的工程是多么恐怖的事情。因此,一般来说,不建议这类二进制进入git版本控制中。
很多工程实践中,会将这类文件存储在ftp服务器中,git库中保存对应的地址索引。但是,或许git lfs是一个更好的选择,其原理和上述实践原理类似,目前github已经完美支持,真是太好了。
-
git lfs 的安装
- mac下请使用homebrew安装:
brew install git-lfs
- mac下请使用homebrew安装:
- linux(unbuntu)下安装:
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get install git-lfs
-
lfs的使用
- 首先需要在git版本库所在目录下对lfs进行初始化。 执行后,在根目录下会生成“.gitattributes”文件。
git lfs install - 添加track规则,下面以后缀为".dat"的二进制文件为例。
git lfs track "*.dat"
执行后,会发现.gitattributes文件多出一行
*.dat filter=lfs diff=lfs merge=lfs -text
说明已经生效。
- 首先需要在git版本库所在目录下对lfs进行初始化。 执行后,在根目录下会生成“.gitattributes”文件。
- 将.gitattributes加入到版本控制中。
git add .gitattributes
git commit -m "add .gitattributes" - 至此,lfs已经配置完成。后续的二进制add、commit、push同正常的代码提交完全一致,只是在push时会显示

git push 时lfs track的文件显示
refrence:
https://git-lfs.github.com/
https://packagecloud.io/github/git-lfs/install