ホームページ 開発ツール Git GitLab で大きな Git フォルダーを削除する方法

GitLab で大きな Git フォルダーを削除する方法

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 }'
ログイン後にコピー

此命令的作用是列举出当前库中所有所有提交中的 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 = <project_id>;
ログイン後にコピー

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

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

SELECT * FROM repository_storages WHERE repository_id = <repository_id>;
ログイン後にコピー

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

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

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

DELETE FROM repository_uploads WHERE path LIKE '<path>/%';
ログイン後にコピー

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

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

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

sudo rm -rf <path>
ログイン後にコピー

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

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

总结

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

以上がGitLab で大きな Git フォルダーを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Git vs. Github:バージョンコントロールとコードホスティング Git vs. Github:バージョンコントロールとコードホスティング Apr 11, 2025 am 11:33 AM

Gitはバージョン制御システムであり、GithubはGitベースのコードホスティングプラットフォームです。 GITは、コードバージョンを管理し、ローカル操作をサポートするために使用されます。 GitHubは、問題の追跡やPullRequestなどのオンラインコラボレーションツールを提供しています。

gitはgithubと同じですか? gitはgithubと同じですか? Apr 08, 2025 am 12:13 AM

gitとgithubは同じものではありません。 Gitはバージョン制御システムであり、GithubはGitベースのコードホスティングプラットフォームです。 GITはコードバージョンの管理に使用され、GitHubはオンラインコラボレーション環境を提供します。

Githubは学ぶのが難しいですか? Githubは学ぶのが難しいですか? Apr 02, 2025 pm 02:45 PM

Githubを学ぶのは難しくありません。 1)基本知識をマスターする:GitHubは、コードの変更と共同開発の追跡に役立つGitベースのバージョン制御システムです。 2)コア関数を理解する:バージョン制御は各提出を記録し、ローカル作業とリモート同期をサポートします。 3)使用方法を学びます:リポジトリの作成からコミットをプッシュする、ブランチの使用、リクエストをプルするまで。 4)一般的な問題を解決する:競合のマージやファイルの追加を忘れるなど。 5)最適化の練習:意味のある提出メッセージを使用し、ブランチをクリーンアップし、プロジェクトボードを使用してタスクを管理します。練習とコミュニティコミュニケーションを通じて、Githubの学習曲線は急ではありません。

履歴書にgitまたはgithubを置くべきですか? 履歴書にgitまたはgithubを置くべきですか? Apr 04, 2025 am 12:04 AM

履歴書では、ポジションの要件と個人的な経験に基づいて、GitまたはGithubを作成することを選択する必要があります。 1.位置にGITスキルが必要な場合は、Gitを強調表示します。 2。ポジションがコミュニティの参加を評価する場合は、Githubを表示します。 3.使用経験とプロジェクトのケースを詳細に説明し、完全な文で終了してください。

MicrosoftはGitまたはGithubを所有していますか? MicrosoftはGitまたはGithubを所有していますか? Apr 05, 2025 am 12:20 AM

MicrosoftはGitを所有していませんが、Githubを所有しています。 1.GITは、2005年にLinus Torvazによって作成された分散バージョン制御システムです。2。Githubは、GITに基づくオンラインコードホスティングプラットフォームです。 2008年に設立され、2018年にMicrosoftに買収されました。

HTMLにGitHubを使用する方法は? HTMLにGitHubを使用する方法は? Apr 07, 2025 am 12:13 AM

GitHubを使用してHTMLプロジェクトを管理する理由は、バージョン制御、共同開発、作品の提示のためのプラットフォームを提供するためです。特定の手順には次のものが含まれます。1。gitリポジトリの作成と初期化、2。htmlファイルを追加および送信します。3。githubにプッシュ、4。githubpagesを使用してWebページを展開します。さらに、GitHubは、HTMLプロジェクトの最適化とコラボレーションを支援するために、コードレビュー、発行、およびPullRequest機能もサポートしています。

gitまたはgithubから始めるべきですか? gitまたはgithubから始めるべきですか? Apr 06, 2025 am 12:09 AM

GITから始めることは、バージョン制御原則を深く理解するためにより適しており、GitHubから始めることは、コラボレーションとコードホスティングに焦点を当てるのに適しています。 1.GITは、コードバージョン履歴の管理に役立つ分散バージョン制御システムです。 2。Githubは、Gitに基づいたオンラインプラットフォームであり、コードホスティングとコラボレーション機能を提供します。

簡単な言葉でGitとは何ですか? 簡単な言葉でGitとは何ですか? Apr 09, 2025 am 12:12 AM

GITは、開発者がファイルの変更を追跡し、協力してコードバージョンを管理するのに役立つオープンソース分散バージョン制御システムです。そのコア関数には、1)レコードコードの変更、2)以前のバージョンへのフォールバック、3)共同開発、4)並列開発のためのブランチの作成と管理。

See all articles