0%

git-lfs使用笔记

前言

一直想找个能够存储比较大的文件 而且又能像git一样操作方便快捷
开始准备自建svn来达到需求的
后来看github的一些文档看到了git lfs (Git Large File Storage)功能
干脆了解了一下 顺便记录下这篇笔记 方便以后查阅
常见的git 仓库网站都提供 git lfs 存储 例如github
笔记中任何命令都在ubuntu中执行过

实战

安装 git lfs

git lfs支持直接二进制安装、各种包管理工具安装(apt、yum、pacman之类的)

1
2
3
4
#安装 git lfs
sudo apt install git-lfs
# 初始化git lfs
sudo git lfs install
配置lfs 管理的文件

初始化 lfs的配置文件

1
git lfs track "<目录>/*"

执行上面的命令会在项目的根目录生成 .gitattributes
内容大致如下

1
<目录>/* filter=lfs diff=lfs merge=lfs -text
添加lfs .gitattributes配置到仓库
1
2
sudo git add .gitattributes 
sudo commit -m "init git lfs config"
添加并且上传大文件

将大文件复制到 <目录>

1
2
3
sudo git add <目录>/xxx
sudo git commit -m "update xxx"
sudo git push

基于git lfs 管理的文件更新会显示成

1
2
3
Git LFS: (1 of 1 files) 9.18 KB / 9.18 KB                                                                                                                      
对象计数中: 10, 完成.
。。。。。。。。
git lfs 卸载
  • 卸载git lfs
    1
    sudo apt --purge remove git-lfs
  • 删除lfs相关的filter
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #查看 git的全局配置
    git config -l
    #删除和lfs有关的配置
    ## 查看lfs相关的配置
    git config -l|grep lfs
    ##挨个删除
    git config --global --unset filter.lfs.clean
    git config --global --unset filter.lfs.smudge
    git config --global --unset filter.lfs.process
    git config --global --unset filter.lfs.required
    git config --global --unset filter.lfs.required
    #删除 lfs的仓库地址 按需删除
    git config --global --unset lfs.https://github.com/xuxianyu/blog.git/info/lfs.access

总结

git 的功能越来越吊了 现在能够好好的管理大文件了
git只是存储大文件的指针 不负责存储 还是保持了git的高效 易用 但是有能够管理大文件 6的一批