Rumah alat pembangunan git Bagaimana untuk memadam folder Git yang besar dalam GitLab

Bagaimana untuk memadam folder Git yang besar dalam GitLab

Apr 26, 2023 am 09:16 AM

在使用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 }'
Salin selepas log masuk

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

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

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

sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -d gitlabhq_production
Salin selepas log masuk

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

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

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

\x
SELECT * FROM projects;
Salin selepas log masuk

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

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

SELECT * FROM repositories WHERE project_id = <project_id>;
Salin selepas log masuk

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

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

SELECT * FROM repository_storages WHERE repository_id = <repository_id>;
Salin selepas log masuk

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

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

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

DELETE FROM repository_uploads WHERE path LIKE '<path>/%';
Salin selepas log masuk

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

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

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

sudo rm -rf <path>
Salin selepas log masuk

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

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

总结

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

Atas ialah kandungan terperinci Bagaimana untuk memadam folder Git yang besar dalam GitLab. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara Menggunakan Alat Pengurusan Git Untuk Penggunaan Lengkap Alat Pengurusan Git Cara Menggunakan Alat Pengurusan Git Untuk Penggunaan Lengkap Alat Pengurusan Git Mar 06, 2025 pm 01:32 PM

Artikel ini memberikan panduan kepada pengurusan git, meliputi alat GUI (sourcetree, gitkraken, dll.), Arahan penting (git init, klon git, git add, komit git, dll), amalan terbaik pengurusan cawangan (cawangan ciri, permintaan tarik), dan gabungan con

Bagaimana menolak komitmen yang ditentukan Bagaimana menolak komitmen yang ditentukan Mar 06, 2025 pm 01:39 PM

Panduan ini menerangkan bagaimana untuk menolak komitmen git tunggal ke cawangan terpencil. Butirannya menggunakan cawangan sementara untuk mengasingkan komit, menolak cawangan ini ke jauh, dan kemudian secara pilihan memadamkan cawangan sementara. Kaedah ini mengelakkan konflik dan

Cara menyelesaikan kegagalan penyerahan komitmen git Cara menyelesaikan kegagalan penyerahan komitmen git Mar 06, 2025 pm 01:38 PM

Artikel ini membincangkan kegagalan komitmen biasa. Ia memperincikan langkah-langkah penyelesaian masalah untuk isu-isu seperti fail yang tidak dijual, perubahan yang tidak disengajakan, menggabungkan konflik, dan cangkuk pra-komite. Penyelesaian dan langkah pencegahan disediakan untuk memastikan git yang lebih lancar

Perbezaan antara komit dan menolak git Perbezaan antara komit dan menolak git Mar 06, 2025 pm 01:37 PM

Artikel ini menerangkan perbezaan antara komitmen dan perintah git. Git komit menyelamatkan perubahan secara tempatan, sementara git menolak memuat naik perubahan yang komited ke repositori jauh. Artikel ini menyoroti kepentingan memahami distin ini

Cara Melihat Kandungan Komitmen Cara Melihat Kandungan Komitmen Mar 06, 2025 pm 01:41 PM

Kaedah butiran artikel ini untuk melihat kandungan komited git. Ia memberi tumpuan kepada penggunaan pertunjukan Git untuk memaparkan mesej komit, maklumat pengarang, dan perubahan (diffs), log git -p untuk pelbagai 'diffs, dan berhati -hati terhadap secara langsung memeriksa komitmen. Alt

Perbezaan antara menambah dan komitmen git Perbezaan antara menambah dan komitmen git Mar 06, 2025 pm 01:35 PM

Artikel ini menerangkan peranan yang berbeza dari Git ADD dan Git Commit dalam Git. Git menambah perubahan peringkat, menyediakannya untuk dimasukkan ke dalam komit seterusnya, sementara Git komit menyelamatkan perubahan yang dipentaskan kepada sejarah repositori. Proses dua langkah ini membolehkan

Apakah alat pengurusan kod git? Apakah alat pengurusan kod git? Mar 06, 2025 pm 01:31 PM

Artikel ini memperkenalkan Git, sistem kawalan versi yang diedarkan. Ia menyoroti kelebihan GIT ke atas sistem berpusat, seperti keupayaan luar talian dan cawangan/penggabungan yang cekap untuk kerjasama yang dipertingkatkan. Artikel ini juga memperincikan pembelajaran r

Cara Menggunakan Tutorial Alat Pengurusan Git untuk Menggunakan Alat Pengurusan Git Untuk Pemula Cara Menggunakan Tutorial Alat Pengurusan Git untuk Menggunakan Alat Pengurusan Git Untuk Pemula Mar 06, 2025 pm 01:33 PM

Panduan pemula ini memperkenalkan Git, sistem kawalan versi. Ia meliputi arahan asas (init, tambah, komit, status, log, cawangan, checkout, gabungan, menolak, tarik) dan menyelesaikan konflik gabungan. Amalan terbaik untuk kegunaan git yang cekap, termasuk COLL COMM

See all articles