zoukankan      html  css  js  c++  java
  • git-lfs插件

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

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

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

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

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

    git1.8.5及之后版本才支持git lfs,git2.12及之后版本集成了git-lfs(在git安装目录的mingw64ingit-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的安装目录的mingw64ingit-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 version  // 查看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 "*.a" "*.dylib" "*.so" "*.lib" "*.dll"  // a、dylib、so、lib、dll文件用lfs来管理,会在根目录的.gitattributes文件中添加

    *.dylib filter=lfs diff=lfs merge=lfs -text
    *.so filter=lfs diff=lfs merge=lfs -text
    *.lib filter=lfs diff=lfs merge=lfs -text
    *.dll filter=lfs diff=lfs merge=lfs -text
    *.a 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 的反思

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 黑色星期五
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    控件动态产生器(使用RegisterClasses提前进行注册)
    Delphi编写自定义控件以及接口的使用(做了一个TpgDbEdit)
    Log4delphi使用心得
  • 原文地址:https://www.cnblogs.com/kekec/p/10556189.html
Copyright © 2011-2022 走看看