当前位置: 首页 > news >正文

git拦截大于5M文件

1)路径

root@slm-server:/data/gitea/data/data/repositories/wbs/test_larget_file.git# pwd /data/gitea/data/data/repositories/wbs/test_larget_file.git

2)执行下

root@slm-server:/data/gitea/data/data/repositories/wbs/test_larget_file.git# vim hooks/pre-receive.d/check-file-size

#!/bin/bash # 设置最大文件大小为 5MB (5 * 1024 * 1024 = 5242880 字节) MAX_FILE_SIZE=5242880 ZERO_COMMIT="0000000000000000000000000000000000000000" while read oldrev newrev refname; do # 处理分支删除(跳过) if [ "$newrev" = "$ZERO_COMMIT" ]; then continue fi # 确定要检查的提交范围 if [ "$oldrev" = "$ZERO_COMMIT" ]; then # 新分支:检查所有提交 range="$newrev" else # 已有分支:检查新增的提交 range="$oldrev..$newrev" fi # 遍历范围内的每个提交 for commit in $(git rev-list "$range"); do # 获取该提交中的所有文件 files=$(git diff-tree --no-commit-id --name-only -r "$commit") for file in $files; do # 获取文件在提交中的大小(字节) file_size=$(git cat-file -s "$commit:$file" 2>/dev/null || echo 0) if [ "$file_size" -gt "$MAX_FILE_SIZE" ]; then echo "❌ 错误:提交 $commit 中的文件 '$file' 大小超过限制 ($((file_size/1024/1024))MB > 5MB)" >&2 echo "💡 提示:请使用 Git LFS 管理大文件,或从提交中移除该文件" >&2 exit 1 fi done done done exit 0

3)加权限

root@slm-server:/data/gitea/data/data/repositories/wbs/test_larget_file.git# chmod +x hooks/pre-receive.d/check-file-size root@slm-server:/data/gitea/data/data/repositories/wbs/test_larget_file.git# chown gitea:gitea hooks/pre-receive.d/check-file-size

4)测试

dd if=/dev/zero of=test30m.bin bs=1M count=30 git add test10m.bin git commit -m "test 30mb" git push
http://www.cnnetsun.cn/news/3634186.html

相关文章:

  • 为OpenClaw工作流配置Taotoken以调用多样化模型
  • 江西吉安永丰县三层自建房,楼梯中间宽敞土建井道,优化开门方案定制玫瑰金木纹内饰家用电梯落地案例
  • AI编程精准化:Qoder Rules规则与跨平台代码生成实战
  • 大语言模型部署优化:算法与系统协同实践
  • 2026年毕业论文选题工具深度测评:这五家平台实战横评,帮你避坑选对
  • 麒麟系统GRUB启动菜单超时配置指南
  • MIE-YOLO:农业杂草识别的轻量化解决方案
  • 多智能体强化学习:MADDPG算法原理与实践
  • 计算机毕业设计之全家桶鲜花售卖系统
  • 工业AI决策可解释性:MCP存证系统架构与实践
  • PCL2启动器:5个关键功能让您的Minecraft体验更出色
  • 方法对 ArrayList 中的元素进行排序的基本示例
  • Kubernetes集群部署预检实战指南
  • Windows系统下Dify开源AI工具安装与部署指南
  • 射电天文RFI实时检测系统:AI驱动的高效干扰识别方案
  • AI智能体手机技术架构与开发实践全解析
  • 复赛权益到账:300次TraeCN账户Fast Pass
  • Windows Defender完全移除终极指南:3种模式提升系统性能50%
  • UE4 Shipping模式日志消失问题:原理分析与四种解决方案
  • Linux进程管理:从原理到容器化实践
  • Linux进程控制:fork、exit与wait系统调用详解
  • 清华系AI大模型核心技术解析与应用实践
  • 当NPC开始质疑玩家指令——多智能体涌现行为监控体系(NASA仿真验证过的异常检测算法首次开源)
  • AI智能生成实习总结系统设计与实践
  • AI技术解决服装电商尺码问题:从OCR到多语言生成
  • AI产品出海韩国:技术适配与本地化实践
  • AI工具如何提升本科开题报告写作效率与质量
  • 华硕笔记本性能优化神器G-Helper:5分钟让你的电脑焕然一新![特殊字符]
  • GitHub趋势榜揭示开发者新焦点:AI编程、Agent与基础设施优化
  • 分布式事务方案对比:Saga、TCC、XA 在生产环境中的性能与一致性全景复盘