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 则可临时打开配置:

相关推荐
xixixi777774 分钟前
基于零信任架构的通信
大数据·人工智能·架构·零信任·通信·个人隐私
Hello.Reader1 小时前
Flink 自适应批执行(Adaptive Batch Execution)让 Batch 作业“边跑边优化”
大数据·flink·batch
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-01-31
大数据·人工智能·经验分享·搜索引擎·产品运营
babe小鑫2 小时前
中专学历进入快消大厂终端销售岗位的可行性分析
大数据
samFuB2 小时前
【工具变量】区县5A级旅游景区DID数据集(2000-2025年)
大数据
百夜﹍悠ゼ2 小时前
数据治理DataHub安装部署
大数据·数据治理
wdfk_prog3 小时前
解决 `git cherry-pick` 引入大量新文件的问题
大数据·git·elasticsearch
洛阳纸贵4 小时前
JAVA高级工程师--Elasticsearch
大数据·elasticsearch·搜索引擎
TracyCoder1234 小时前
ElasticSearch内存管理与操作系统(二):深入解析 Circuit Breakers(熔断器)机制
大数据·elasticsearch·搜索引擎
外参财观5 小时前
从浏览器到“超级眼”:夸克的突围战
大数据