【转】Git LFS的使用

转载自:Git LFS的使用


还没使用git之前,二进制文件和源代码分成两块,分别存放到不同的svn仓库上(防止二进制文件中有病毒感染服务器,所以做了这种隔离)。
现在公司已经切换到git上进行版本管理了,那么就可以使用git lfs来管理这些二进制文件,这样就可以让源码和二进制文件和谐共存于一处,从而不像以前那样,需要分别做两次更新。

Git LFS的简单理解

LFS其实是git的一个扩展,并没有改变git的工作方式,有点像耍了个小花招,把指定需要lfs管理的文件替换成了一个指针文件交给git进行版本管理;
在pull/push等这些操作中,lfs又通过lfs服务器把这些文件的真身给下载或上传回来;
通过这样的手段,使得本地仓库的体积大大减小,而不会出现随着这些文件的版本增多而体积剧烈膨胀的情况;
个人觉得这种把存储负担转移给了服务器的做法,是不是有违git去中心化的理念,毕竟lfs这样做其实算是强依赖于这个lfs服务器了,本地仓库并不是一个完整的仓库

安装

Windows下常用的Git for Windows和Source Tree都已经集成了lfs,不需要另外安装了,可以运行命令git lfs查看

首次使用

第一次使用前需要运行下 git lfs install,只要运行一次,以后都不需要了

日常使用

需要用lfs管理的文件要添加到追踪列表里,一般而言,把某个类型的文件统一用lfs管理会是个好注意,例如我们把dll文件用lfs管理git lfs track ‘*.dll’
此时,仓库的根目录下会自动创建.gitattribute文件,里面就记录了使用lfs的文件
后续添加新的类型可以用git lfs track命令,也可以直接编辑.gitattribute文件
注意:.gitattribute文件需要添加到git仓库中进行版本管理
文件追踪之后,后续的所有操作都是和git的普通操作一致了

辅助命令

git lfs ls-files:查看当前有哪些文件是使用lfs管理的

发表评论