Git 存储大文件

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

如果是其他仓库,可能需要按照官方说明进行额外处理。

例如阿里云仓库则需要参照链接

相关推荐
醇氧几秒前
【git】 撤回一个本地提交
大数据·git·elasticsearch
空空kkk6 分钟前
Git——分支管理
git
Micknee2 小时前
Windows环境下配置git和github
windows·git·github
测试人社区—52722 小时前
你的单元测试真的“单元”吗?
前端·人工智能·git·测试工具·单元测试·自动化·log4j
weixin_462446233 小时前
macOS 安装 git-lfs
git·macos
CoderJia程序员甲3 小时前
GitHub 热榜项目 - 日榜(2025-12-7)
git·ai·开源·llm·github
空空kkk3 小时前
Git版本控制——diff命令
git
小王不爱笑1324 小时前
Git简单的文件提交操作
git
封奚泽优5 小时前
Deep-Live-Cam(调试和求助)
git·python·ffmpeg·pip·cuda
空空kkk6 小时前
Git版本控制——.gitignore文件
git