Linux关于git上传大文件的解决方案:使用Git LFS

最近想要上传sdk到gitlab仓库上,但是使用git push的时候发现限制文件上传的大小限制到了100MB。

保持当前仓库的干净,要么重新拉取,要么git reset HEAD^ --hard这个命令来重新进行commit,直到撤回到代码上显示没有commit的地方为止。

下载安装Git LFS:主要是运用Git LFS这个git扩展应用程序来实现的,这个程序可以将git上传的大文件转换成二进制的索引跟踪文件,存储到自己的存储池中而不占用git仓库中的内存,实现大文件的传送。

  1. Debian/Ubuntu 及其衍生系统
bash 复制代码
# 更新软件包列表
sudo apt update

# 安装 Git LFS
sudo apt install git-lfs

# 初始化 Git LFS
git lfs install

# 输出
Updated Git hooks.
Git LFS initialized.

追踪特定大小的文件(需要结合 find)

bash 复制代码
#查找当前目录大于100M的文件
find . -size +100M | sed 's/^\.\///'
#追踪
git lfs track "*.img" "*.tar.xz" "*.rar" "*.tar" "*.tar.gz" "*.bin" "*.o" "*.so" "*.zip" "*.tar.bz2" "*.a"
git lfs ls-files
#这会在仓库中生成 .gitattributes 文件。
  1. 提交更改
bash 复制代码
git add .gitattributes
git commit -m "启用 Git LFS 跟踪大文件"
git push

现在你的 Linux 系统已经可以正常使用 Git LFS 管理大文件了! 🚀

撤销Git LFS跟踪的大文件类型,例如撤销跟踪.zip的文件跟踪:

bash 复制代码
git lfs untrack "*.zip"

然后再清理一下缓存:

bash 复制代码
git rm --cached "*.zip"
相关推荐
亚空间仓鼠18 分钟前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...1 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++
虚伪的空想家1 小时前
k8s集群configmap和secrets备份脚本
linux·容器·kubernetes
the sun342 小时前
从 QEMU 直接启动到 U-Boot 引导:嵌入式 Linux 启动流程的本质差异
linux·运维·服务器
草莓熊Lotso2 小时前
【Linux 线程进阶】进程 vs 线程资源划分 + 线程控制全详解
java·linux·运维·服务器·数据库·c++·mysql
ShineWinsu2 小时前
对于Linux:文件操作以及文件IO的解析
linux·c++·面试·笔试·io·shell·文件操作
-SGlow-2 小时前
Linux相关概念和易错知识点(52)(基于System V的信号量和消息队列)
linux·运维·服务器
江畔何人初2 小时前
TCP的三次握手与四次挥手
linux·服务器·网络·网络协议·tcp/ip
Trouvaille ~2 小时前
【MySQL篇】数据库操作:从创建到管理
linux·数据库·mysql·oracle·xshell·ddl
酸钠鈀2 小时前
AI WB2 SDK Ubuntu 环境搭建
linux·运维·ubuntu