0.前言
目前git仓库有很多很大的文件需要管理,但是直接上传,每次clone的文件太大,所有准备使用git-lfs解决。
1、下载和安装 Git LFS
1.1、直接下载二进制包: Releases · git-lfs/git-lfs · GitHub
安装 Git LFS
sudo rpm -ivh git-lfs-3.4.1-1.el7.x86_64.rpm
2、让仓库支持LFS
LFS初始化
git lfs install --skip-smudge #clone时跳过lfs文件下载
3、添加&撤销追踪规则
添加lfs文件
git lfs track "${data_dir}/**" #追踪${data_dir}下所有文件(双引号不可省略)
git lfs track 查看当前已跟踪的文件类型
git lfs ls-files 查看当前已跟踪的文件
git-lfs只会在你开始设置的此刻之后追踪新生成的指定文件
撤销lfs文件
git lfs untrack "path/to/your/video.mp4"
git rm --cached path/to/your/video.mp4
git add path/to/your/video.mp4
git commit -m "Moved video.mp4 from LFS to Git"
4、添加&上传文件
同一般git添加、上传,需额外添加.gitattributes
你也可以使用通配符一次性跟踪多个文件。例如,如果你想跟踪所有的.zip
文件:
git lfs track "*.zip"
5、将历史文件转换为LFS管理
按照分支来进行迁移,一次迁移一个分支
历史文件追踪
git lfs migrate import --include-ref=master --include="*.png"
git push --all --force
6、下载实体文件
下载实体文件
git lfs pull #下载所有文件
git lfs pull --include="output/data/smoke/xxx/**" #下载output/data/smoke/xxx下所有文件
7、工作原理
git仓库保存的是大文件lfs指针