为什么要使用LFS(Large File Storage, 大文件存储)

git对整个repository的状态做snapshot,导致如果库里面有很多二进制大文件,效率会比较差,这些二进制文件在代码库中通常也就是用到一个存储的功能。所以想到的一个方法就是对这些文件在git的repository里面只存一个小的文本文件,这个文本文件描述了要去哪里下载对应的二进制文件。git的所有功能就只对这个文本文件操作就可以了。
git lfs https://git-lfs.github.com/ 就是使用这种技术,并且无缝衔接到git现有命令的git扩展。
现在github是默认就支持的git lfs的, 其他gitlab, bitbucket应该也是支持的,本人没有用过。当然如果你自己搭建git server,那就需要自己去配置LFS的支持。

如何安装客户端

git安装后,在git lfs的官网上下载git lfs, 并根据安装程序安装就可以了。试试下面的命令,如果有输出那就安装好了。

git lfs env

接着要运行一段小程序。

git lfs install

那就是git lfs和git命令做衔接的操作。当你用git add, git push, git pull的时候,要对二进制文件进行download, upload操作,通过git的hook进行扩展,调用git lfs的操作,让你根本感觉不到git lfs的存在。

git lfs如何使用

很简单。首先要告诉git lfs哪些文件要被git lfs管理。比如所有的jpg文件。

git lfs track "*.jpg"

接着就可以对文件正常执行git操作了。

git add abc.jpg
git commit -m "add a picture file"
git push

这个时候git lfs就会把jpg文件上传到git lfs服务器上。
当你调用

git pull

的时候,这个jpg文件就能下载下来。
如果你pull或者clone的时候,git客户端没有安装LFS扩展,这个时候你只能把一个文本文件给取出来,要取对应的jpg文件,还是需要继续安装git lfs。

总结

git lfs确实对git存储很多大二进制文件提供了支持,但是从我的使用感觉来说,如果你不是有非常多这样的文件,没有必要使用,毕竟这个功能不是git核心的功能,首先服务器需要扩展,就算现在github等流行的托管平台都支持,但是还要保证每个客户端都安装了git lfs。并且如果git lfs下载上传文件出问题,要另外使用git lfs的命令进行定位。
一句话,不到万不得已,暂时不推荐使用。

推荐内容
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐