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

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

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

相关推荐
小龙19 小时前
【Git 报错解决】本地无有效提交无法推送(`src refspec main does not match any`)
git·github·报错
小扶苏20 小时前
删除git全局账号信息并设置成新的账号密码命令
git
Greg_Zhong1 天前
Git创建任务分支进行开发,最后合并主分支master【纯git命令执行过程】阐述
git
眯眼因为很困啦1 天前
GitHub Fork 协作完整流程
前端·git·前端工程化
AlexDeng1 天前
Git 中模糊搜索分支名称并创建本地跟踪分支
git
jxm_csdn1 天前
递归工程工厂:Claude Code + Git Worktrees + Tilix/Tmux 的“AI分身”编码团队
人工智能·git
码咔吧咔1 天前
Git 中 pull.rebase = true 的作用与设置方法详解
git
郑州光合科技余经理1 天前
开发实战:海外版同城o2o生活服务平台核心模块设计
开发语言·git·python·架构·uni-app·生活·智慧城市
我是海飞1 天前
Git 本地仓库推送到远程空仓库指南
大数据·git·elasticsearch
记得开心一点嘛1 天前
如何去使用git进行协同开发?
git