git LFS

安装

  • 软件包管理器安装 brew install git-lfs
  • 官方地址下载安装
  • 安装sourcetree

使用

  • 初始化 git lfs install
  • 检查配置 git lfs env
  • 指定要跟踪的文件 git lfs track "*.ogg" size为0字节的文件 不会被跟踪
  • 取消跟踪的文件 git lfs untrack "*.ogg"
  • 查看 cat .gitattributes | git lfs track
  • 查看被追踪的文件列表 git lfs ls-files
  • 查看被追踪的文件列表详情 git lfs ls-files --json | git lfs ls-files --debug
    $ git lfs ls-files
    9120b70423 * l1.ogg
    $ git lfs ls-files --json
    {
     "files": [
      {
       "name": "l1.ogg",
       "size": 10,
       "checkout": true,
       "downloaded": true,
       "oid_type": "sha256",
       "oid": "9120b70423370ee5903b7d92e5018448f4914118807e4380b9074fef37dd11d4",
       "version": "https://git-lfs.github.com/spec/v1"
      }
      ]
    }
    $ git lfs ls-files --debug
    filepath: l1.ogg
        size: 10
    checkout: true
    download: true
         oid: sha256 9120b70423370ee5903b7d92e5018448f4914118807e4380b9074fef37dd11d4
     version: https://git-lfs.github.com/spec/v1
    
  • 服务器端查看l1.ogg文件存储地址 9120b70423370ee5903b7d92e5018448f4914118807e4380b9074fef37dd11d4
    lfs_object = LfsObject.find_by(oid: '9120b70423370ee5903b7d92e5018448f4914118807e4380b9074fef37dd11d4')
    lfs_object.file.path
    => "91/20/b70423370ee5903b7d92e5018448f4914118807e4380b9074fef37dd11d4"
    lfs_object.file.url
    => "LFS OBS云存储下载地址"
    
  • clone/checkout/pull时忽略lfs文件 GIT_LFS_SKIP_SMUDGE=1 git clone/checkout/pull
  • 恢复lfsgit lfs pull
    $ GIT_LFS_SKIP_SMUDGE=1 git clone 
    $ cat l1.ogg
    version https://git-lfs.github.com/spec/v1
    oid sha256:9120b70423370ee5903b7d92e5018448f4914118807e4380b9074fef37dd11d4
    size 10
    $ git lfs pull
    $ cat l1.ogg
    121312121
    
  • 官方demo
    git lfs install
    git lfs track "*.psd"
    git add .gitattributes
    git add file.psd
    git commit -m "Add design file"
    git push origin main
    

参考

  • 详解 Git 大文件存储(Git LFS)
  • 极狐GitLab Git 大文件存储 (LFS) 管理

你可能感兴趣的:(git,git)