zoukankan      html  css  js  c++  java
  • Git LFS

    Git LFS 简介

    Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。

    Git LFS可以把音乐、图片、视频等指定的任意文件存在 Git 仓库之外,而在 Git 仓库中用一个占用空间 1KB 不到的文本指针来代替文件的存在。

    通过把大文件存储在 Git 仓库之外,可以减小 Git 仓库本身的体积,使克隆 Git 仓库的速度加快,也使得 Git 不会因为仓库中充满大文件而损失性能。

    要使用 Git LFS 只需要经过一次下载安装后,指定需要由 Git LFS 管理的文件即可。

    LFS 对目录是不生效的(但在git远程仓库也是提示LFS)

    原理:不同于git每次保存diff,对于git来说,如果是模型文件或者一些设计大文件,改变一点,对于仓库来说会增加很大的体积。对于git lfs来说,在使用git lfs track命令后,git push的时候,git lfs会截取要管理的大文件,并将其传至git lfs的服务器中,从而减小git仓库的体积。

    Git LFS 下载和安装

    注意:安装 Git LFS 需要 Git 的版本不低于 1.8.5

    Windows 系统

    通过https://git-lfs.github.com/下载 Git LFS 安装包。
    双击安装包,打开安装 git-lfs
    在命令行中执行 git lfs install(需要确认 git-lfs 命令已经被包含在环境变量中)
    

    Linux 系统

    curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
    sudo apt-get install git-lfs
    git lfs install
    

    Mac OS 系统

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew install git-lfs
    git lfs install
    

    GIT LFS配置

    注: Git version > 1.8.5 如未安装LFS,拉取到本地LFS文件将是约1K的ASCII text文本文件(但通过du -sh查看目前的大小此目录依旧很大,那是因为.git/objects 目录存的git log文件占用)。

    使用 git lfs track 追踪需要使用 Git LFS 管理的文件。如:
    运行命令:git lfs track "*.psd"

    也可以手动编辑 Git 仓库根目录下的 .gitattributes 文件,如:
    运行命令:vim .gitattributes
    *.psd filter=lfs diff=lfs merge=lfs -text

    提交代码时需要将『.gitattributes 』文件也提交到仓库,提交完成后,执行git lfs ls-files命令可以查看 LFS 跟踪的文件列表。
    运行命令:git lfs track

    Listing tracked patterns
      *.psd (.gitattributes)
    

    常用命令

    查看当前使用Git LFS管理的匹配列表
    git lfs track
    
    使用Git LFS管理指定的文件
    git lfs track "beta.csv"
    
    不再使用Git LFS管理指定的文件
    git lfs untrack "beta.csv"
    
    枚举目前所有被Git LFS管理的具体文件
    git lfs ls-files
    
    查看当前Git LFS对象的状态,类似git status
    git lfs status
    
    检查当前所用Git LFS的版本
    git lfs version
    
    了解更多Git LFS的使用,可执行git lfs help命令查看帮助。
    git lfs help
    git lfs help  <子命令>
    

    如果自己的相关工作不涉及到被 Git LFS 所管理的文件的话,可以选择只获取 Git 仓库自身的内容,而完全跳过 LFS 对象的获取。

    git -c filter.lfs.smudge= -c filter.lfs.required=false clone https://git.xxx.com/xxxxx.git
    

    如果起初获取代码时,没有一并获取 LFS 对象,而随后又需要这些被 LFS 管理的文件时,可以单独执行 LFS 命令来获取并签出 LFS 对象

    git lfs fetch
    git lfs checkout
    或
    git lfs pull
    

    了解更多 Git LFS 的使用,可执行git lfs help命令查看帮助。

    参考文档

    GitHub GIT LFS
    Coding GIT LFS

  • 相关阅读:
    使用Jenkins自动编译 .net 项目
    Windows平台下Git服务器搭建
    在MAC上搭建cordova3.4.0的IOS和android开发环境
    检索 COM 类工厂中 CLSID 为 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
    IIS7 404 模块 IIS Web Core 通知 MapRequestHandler 处理程序 StaticFile 错误代码 0x80070002
    mac 端口被占用及kill端口
    查询数据库表大小sql
    开启关闭keditor 过滤
    sql修改字段名称
    Android客户端性能优化
  • 原文地址:https://www.cnblogs.com/zongxiang/p/11970784.html
Copyright © 2011-2022 走看看