git-lfs插件

Git本地会保存文件所有版本,对于大文件很容易导致仓库体积迅速膨胀

为了解决这个问题,Github在2015.4宣布推出Git LFS(Large File Storage),详见:Announcing Git Large File Storage (LFS)

其方法是在Git仓库中内嵌一个类似svn工作原理的仓库,被标记放在LFS的文件在Git仓库中仅存放一个指针

执行检出、更新、撤销、切换分支等操作时,根据指针的变化从远程LFS仓库下载对应文件到本地LFS Cache(在.git\lfs\objects目录中)

 

与git一样,git-lfs也是开放源代码的,其源码托管在github的git-lfs站点上

git1.8.5及之后版本才支持git lfs,git2.12及之后版本集成了git-lfs(在git安装目录的mingw64\bin\git-lfs.exe

也可以从git-lfs的官网下载最新的版本进行安装。安装完成后会在git lfs安装目录中释放git-lfs.exe,并添加一个名为GIT_LFS_PATH的环境变量指向该目录

但是,若git自带了git-lfs.exe,git并不会使用新安装的git-lfs.exe(通过执行git lfs version显示当前使用的git-lfs版本)

可以将新安装的git-lfs.exe拷贝覆盖git的安装目录的mingw64\bin\git-lfs.exe来使用新安装的git-lfs版本

 

执行git lfs install,在全局配置文件.gitconfig加入filter "lfs"信息   // 所在目录:c:/users/<用户名>/.gitconfig

[filter "lfs"]
    clean = git-lfs clean -- %f
    smudge = git-lfs smudge -- %f
    process = git-lfs filter-process
    required = true

若在某个git版本库所在目录,执行git lfs install,除了上述功能外,还会为当前git版本库添加hook脚本(也可以单独执行git lfs update来添加hook脚本),使得在执行git标准命令时自动执行git lfs命令

执行git lfs uninstall,对于上面两种情况,会严格执行git lfs install的逆操作来进行清理

 

常用命令

git lfs help // 查看git lfs的帮助

git lfs track // 查看git lfs的文件追踪信息

git lfs track '*.dll' // dll文件用lfs来管理,会在根目录的.gitattributes文件中添加:*.dll filter=lfs diff=lfs merge=lfs -text

git lfs track 'Guid.upk' // Guid.upk文件用lfs来管理,会在根目录的.gitattributes文件中添加:Guid.upk filter=lfs diff=lfs merge=lfs -text

git lfs track 'maps/*' // 根目录下maps文件夹中的所有文件用lfs来管理,会在根目录的.gitattributes文件中添加:maps/* filter=lfs diff=lfs merge=lfs -text

git lfs untrack 'Guid.upk' // Guid.upk文件不再使用lfs来管理

git lfs status  // 查看当前git lfs对象的状态

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

git lfs clone https://github.com/kekec/Test.git // 克隆包含Git LFS的远程仓库到本地

git lfs env  // 查看环境信息

 

参考

Git LFS 服务器实现杂谈

Git LFS 的反思

 

转载于:https://www.cnblogs.com/kekec/p/10556189.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值