Git 存储大文件处理方法
寻找大文件的后缀
bash
find . -type f -size +10M | grep -v ".git" | rev | cut -d. -f1 | rev | sort | uniq
这个命令的工作原理如下:
find .-type f -size +10M:查找大于10M的文件。
grep -v ".git": 不处理.git 目录下的文件
rev:反转每一行,这样文件的扩展名就在行的开始位置。
cut -d. -f1:使用.作为分隔符,取出每一行的第一部分,也就是文件的扩展名。
rev:再次反转每一行,将扩展名恢复到原来的位置。
sort:对结果进行排序,这是uniq命令去重的前提。
uniq:去除重复的行,也就是重复的扩展名。
LFS的安装
- 下载:
Linux Debian 和 RPM packages:https://packagecloud.io/github/git-lfs/install
Mac: brew install git-lfs
Windows:目前lfs已经集成在了Git for Windows 中,直接下载和使用最新版本的Windows Git即可。
直接下载二进制包:https://github.com/git-lfs/git-lfs/releases
依据源码构建:https://github.com/git-lfs/git-lfs
- 安装:
如果你选择使用二进制包下载后安装,直接执行解压后的./install.sh脚本即可,这个脚本会做两个事情:
在$PATH中安装Git LFS的二进制可执行文件
执行git lfs install命令,让当前环境支持全局的LFS配置
让仓库支持LFS
bash
git lfs install
Updated pre-push hook.
Git LFS initialized.
添加到LFS
把筛选出来的后缀添加到lfs的跟踪后缀忠
bash
git lfs track *.so
.gitattributes 文件会自动添加如下行
text
*.so filter=lfs diff=lfs merge=lfs -text
提交
Github和常规提交一致
bash
git commit
推送
bash
git push
如果是其他仓库,可能需要按照官方说明进行额外处理。
例如阿里云仓库则需要参照链接