ホームページ 開発ツール Git git で履歴コミットを削除する方法

git で履歴コミットを削除する方法

Apr 26, 2023 am 09:16 AM

近年、Git は強力なバージョン管理ツールとして、開発チームの間でますます人気が高まっています。ただし、Git を使用すると、不正なコミットが表示される場合があり、これらのコミットがプロジェクトに悪影響を与える可能性があります。これらの履歴コミットを削除する方法は、Git ユーザーがよく直面する問題となっています。この記事では、Git で履歴コミットを削除する方法について詳しく説明します。

1. Git 送信履歴

Git 送信履歴は多くの送信で構成されています。 Git でコミットを行うたびに、新しいコミットが作成されます。各提出物には独自の識別子 (SHA) があり、提出物の作成者、日付、提出物の説明などの情報が含まれています。

Git のコミット履歴は、Git コマンド ラインまたは Git クライアント ツールを使用して表示できます。たとえば、Git コマンド ラインを使用すると、次のコマンドを使用してこのプロジェクトのコミット履歴を表示できます。

git log
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このコマンドは、現在のブランチ上のすべてのコミットを逆順に一覧表示します。各コミットには独自の SHA、コミッターの名前と電子メール、コミット日、およびコミット メッセージがあります。

2. 過去の提出物を削除する理由

共同開発のプロセスでは、不適切な提出物の発生につながる多くの人的要因が発生します。 「不正な提出物」とは、エラー、セキュリティの脆弱性、機密情報などが含まれる可能性のある提出物です。これらの不正なコミットがメインライン ブランチにマージされている場合、プロジェクトの他の部分に悪影響を及ぼす可能性があります。

さらに、パスワード、API キー、その他の機密情報など、コードを送信する前に他の人に見られたくないコンテンツを含めると、送信後に公開される可能性があります。現時点では、過去の投稿を削除することがユーザーのプライバシーを保護する方法です。

3. Git で履歴コミットを削除する方法

Git では、履歴を書き換える方法と Git のフィルタリング メカニズムを使用する方法の 2 つで履歴コミットを削除します。

  1. 履歴の書き換え

履歴の書き換えは、実際には履歴の送信を変更することで実現されます。これは、すでに公開されたコミットに変更や再配置を行うことを意味します。 Git コミット履歴を削除する手順は次のとおりです。

(1) 次のコマンドを使用してコミット履歴を表示します。

git log
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

(2) 削除するコミットの SHA を見つけます。そしてそれを記録します。

(3) 以下のコマンドで履歴を書き換えます。このコマンドで、SHA を削除するコミットの SHA に置き換えます。

git rebase -i SHA^
ログイン後にコピー

このコマンドは、選択したコミットの最後のコミット以降のすべてのコミットのリストを含むエディターを開きます。

(4) 削除するコミットの前の「pick」を「drop」に変更するか、シャープ記号を使用して行をコメントアウトします。保存してエディタを閉じます。

(5) 次のコマンドを実行して、Git のコミットを強制的に上書きします:

git push --force
ログイン後にコピー

最後に、次のコマンドを使用して、コミット履歴が正常に削除されたかどうかを確認できます:

git log
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. Git のフィルタリング メカニズムの使用

Git では、filter-branch コマンドを使用してコミット履歴を削除できます。このコマンドはリポジトリ全体をコピーし、指定されたフィルターを各コミットに適用します。以下は、Git のフィルタリング メカニズムを使用して Git コミット履歴を削除する手順です。

(1) 次のコマンドを使用して、コピー リポジトリを作成します。

git clone --mirror <Git URL>
ログイン後にコピー

(2) 次のコマンドを使用して、コピー リポジトリに入ります:

cd <repository name>.git
ログイン後にコピー

(3) 次のコマンドを使用して履歴送信を削除します:

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch <filename>" --prune-empty --tag-name-filter cat -- --all
ログイン後にコピー

このコマンドは、 という名前のファイルの履歴送信を削除するために使用されます。このコマンドは必要に応じて変更できます。ここでは、 --tag-name-filter cat を使用してタグを修正します。最後に、このコマンドはすべてのブランチに適用されます。

(4) 次のコマンドを使用して、変更を Git リポジトリにプッシュします:

git push --all --force
ログイン後にコピー

最後に、次のコマンドを使用して、コミット履歴が正常に削除されたかどうかを確認できます:

git log
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

four 、概要

履歴を書き換えるか、Git のフィルタリング メカニズムを使用することで、Git の履歴コミットを削除できます。ただし、コミット履歴を削除する前に、慎重に検討し、すべてのチームメンバーが変更の影響を理解していることを確認する必要があります。さらに、ストレージのオーバーヘッドを軽減するために、変更をマージする前に Git リポジトリを定期的にクリーンアップする必要があります。

以上が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)

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

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

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に買収されました。

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

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

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

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

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

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

GitlabがGithubよりも優れているのはなぜですか? GitlabがGithubよりも優れているのはなぜですか? Apr 03, 2025 am 12:08 AM

GitLabは、完全なDevOpsツールチェーンと強力なCI/CD機能を提供するため、一部の開発者やチームにとって優れています。 1。GITLABのCI/CD機能はプラットフォーム内に統合されており、コードの提出から展開までの完全なプロセス自動化をサポートします。 2。そのサーバー側のレンダリングテクノロジーは、大規模なプロジェクトのページの読み込み速度を改善します。 3。Gitlabの許可管理システムはより柔軟であり、細粒の制御をサポートしています。

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とは何ですか? 簡単な言葉でGitとは何ですか? Apr 09, 2025 am 12:12 AM

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

See all articles