0

0

如何删除GitLab中的Git大文件夹

PHPz

PHPz

发布时间:2023-04-26 09:16:03

|

1931人浏览过

|

来源于php中文网

原创

在使用gitlab进行版本管理的过程中,我们可能会遇到一个问题:git库中存储了太多大文件,导致gitlab的储存空间不足。此时,我们就需要删除git中的git大文件夹来腾出一些空间。但是,由于git的特殊性质,删除文件夹不是和其他文件一样删除,而是需要一些额外操作。本文将介绍如何在gitlab上删除git大文件夹的方法。

1、确认Git大文件夹

首先,我们需要确认在GitLab上库中的哪个文件夹占用了最多的空间,进而决定哪个文件夹是Git大文件夹。我们可以通过以下命令来确定:

git rev-list --objects --all | \
  git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' | \
  sed -n 's/^blob //p' | \
  sort --numeric-sort --key=2 | \
  cut -c 1-12,41- |
  # 此时应该得到一个类似如下的输出
  # 6fb171 9336398 vendor/assets/bower_components/bootstrap/dist/js/bootstrap.min.js
  # 8cf6f9 9430549 vendor/assets/bower_components/jquery/jquery.js
  # 45babf 11219868 vendor/assets/bower_components/angular/angular.js
  # …
  awk '$2 >= 1000000 { print }'

此命令的作用是列举出当前库中所有所有提交中的 blob 对象,并按照 size 从小到大排序。最后的 awk '$2 >= 1000000 { print }' 表示只输出文件大小大于等于 1000000 字节的文件。这个命令中的数字可以自行更改成你所需要的大小。

2、从GitLab数据库中删除Git大文件夹

在确认了Git大文件夹之后,我们可以通过以下命令从GitLab的数据库中删除该文件夹:

sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -d gitlabhq_production

此命令会进入GitLab的数据库中。在这里,我们需要注意以下几点:

  • 在执行这条命令之前,请确保你已经备份了整个gitlabhq_production数据库;
  • 进入数据库后,你需要输入明确的SQL指令,请谨慎操作;
  • 请确认你所登录的用户有权限进行数据库的操作。

在进入数据库之后,我们可以通过以下命令进入出我们所需要删除的文件夹所在的项目:

\x
SELECT * FROM projects;

此命令会列举出数据库中所包含的所有项目,我们可以用这个命令找到我们需要删除的Git大文件夹所在的项目。

接下来,我们需要根据项目的ID,进入该项目的repositories表中。

SELECT * FROM repositories WHERE project_id = ;

此命令会在repositories表中找到在指定项目中的repository记录。我们需要记下这个记录的ID,以便后续操作。

接下来,我们需要进入该repository记录所对应的repository_storages表中。

B2S商城系统
B2S商城系统

B2S商城系统B2S商城系统是由佳弗网络工作室凭借专业的技术、丰富的电子商务经验在第一时刻为最流行的分享式购物(或体验式购物)推出的开源程序。开发采用PHP+MYSQL数据库,独立编译模板、代码简洁、自由修改、安全高效、数据缓存等技术的应用,使其能在大浏览量的环境下快速稳定运行,切实节约网站成本,提升形象。注意:如果安装后页面打开出现找不到数据库等错误,请删除admin下的runtime文件夹和a

下载
SELECT * FROM repository_storages WHERE repository_id = ;

在上述命令中,指代我们刚刚记录下的repository记录的ID。

现在,我们需要确定我们需要删除的大文件夹所在的存储路径。如果你不确定这个路径是什么,可以打开GitLab的页面,到存储空间管理页面,找到对应项目的存储路径。

最后,我们就可以通过以下命令从数据库中删除指定的大文件夹了:

DELETE FROM repository_uploads WHERE path LIKE '/%';

在上述命令中,指代我们刚刚确定的大文件夹所在的存储路径。这个命令会将该路径下的所有文件都删除掉。

3、删除服务器上的Git大文件夹

在数据库中删除Git大文件夹后,我们还需要在服务器上将这些文件从磁盘上彻底删除。你可以直接通过rm命令删除大文件夹,例如:

sudo rm -rf 

在上述命令中,指代我们刚刚确定的大文件夹所在的存储路径。但是,如果你在执行该命令时遇到问题,请先停止GitLab和Nginx的服务。在删除文件夹后,我们还需要重新启动这两个服务。

完毕!你已经成功地在GitLab上删除了Git大文件夹。

总结

本文介绍了如何在GitLab上删除Git大文件夹。要删除文件夹主要需要进行两个步骤:从数据库中删除文件夹记录,然后从磁盘上彻底删除文件夹。删掉Git大文件夹之后,我们可以为GitLab腾出更多的空间来存储其他文件。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

3

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

30

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

2

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

8

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

3

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号