gitlab解决传过大文件后删除导致pack过大问题

有时候git项目源文件明明不大,可能就1M左右,然而拉取却很慢,整体占用空间达到几十上百M,查看提交记录,发现是有人误提交了编译后的target包中的jar包,后来发现误传又删除了。

在 GitLab 中,即使删除了大文件,它们的历史记录仍会保留在仓库中,导致 .pack 文件过大,影响拉取代码的速度。要彻底删除这些大文件的历史记录,可以使用 git filter-repo 工具。以下是具体步骤:

  1. 安装 git filter-repo

确保已安装 git filter-repo,若未安装,可通过以下命令安装:

pip install git-filter-repo

  1. 克隆仓库

克隆需要清理的仓库:

git clone --mirror https://gitlab.com/your-username/your-repo.git

cd your-repo.git

  1. 使用 git filter-repo 删除大文件

使用 git filter-repo 删除大文件的历史记录。例如,删除 large-file.zip:

git filter-repo --path large-file.zip --invert-paths

若要删除多个文件,可以多次使用 --path 参数:

git filter-repo --path large-file1.zip --path large-file2.zip --invert-paths

  1. 推送更改

清理完成后,强制推送到远程仓库:

git push origin --force --all

git push origin --force --tags

  1. 重新克隆仓库

清理后,重新克隆仓库以确保所有历史记录已更新:

cd ..

rm -rf your-repo.git

git clone https://gitlab.com/your-username/your-repo.git

  1. 清理本地仓库

如果本地仓库也需要清理,可以删除并重新克隆:

rm -rf your-repo

git clone https://gitlab.com/your-username/your-repo.git

注意事项

备份:操作前务必备份仓库,以防数据丢失。

影响:这会重写提交历史,所有开发者需重新克隆仓库。

权限:确保有权限强制推送。

通过这些步骤,你可以有效清理仓库中的大文件记录,减小 .pack 文件大小,提升拉取代码的速度。

需要加个remote,

URL:https://xxx.com/xta/xt-open-admin (你的git地址)

如果不能force push 则可临时打开配置:

相关推荐
潇潇云起2 小时前
【elastic-start-local 本地docker 30天后需要重新试用处理】
elasticsearch
面向Google编程2 小时前
Flink源码阅读:JobManager的HA机制
大数据·flink
Tony Bai2 小时前
【分布式系统】03 复制(上):“权威中心”的秩序 —— 主从架构、一致性与权衡
大数据·数据库·分布式·架构
汽车仪器仪表相关领域4 小时前
全自动化精准检测,赋能高效年检——NHD-6108全自动远、近光检测仪项目实战分享
大数据·人工智能·功能测试·算法·安全·自动化·压力测试
大厂技术总监下海4 小时前
根治LLM胡说八道!用 Elasticsearch 构建 RAG,给你一个“有据可查”的AI
大数据·elasticsearch·开源
石像鬼₧魂石6 小时前
22端口(OpenSSH 4.7p1)渗透测试完整复习流程(含实战排错)
大数据·网络·学习·安全·ubuntu
f***28146 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
TDengine (老段)6 小时前
TDengine Python 连接器进阶指南
大数据·数据库·python·物联网·时序数据库·tdengine·涛思数据
数据猿9 小时前
【金猿CIO展】如康集团CIO 赵鋆洲:数智重塑“顶牛”——如康集团如何用大数据烹饪万亿肉食产业的未来
大数据
zxsz_com_cn10 小时前
设备预测性维护的意义 工业设备预测性维护是什么
大数据