A photograph of a computer monitor showing a .gitignore file.

Git を使っていると、.gitignore ファイルに新しい行を追加したのに "git commit" のステージング・エリアに無視されたファイルが表示されたままになっていることがよくあるでしょう。このような問題に直面したときの解決策は、Git キャッシュをクリアしてきれいにすることです。

このガイドでは、Git キャッシュをすべてクリアする方法を説明します。さらに、キャッシュされたファイルやディレクトリ、認証情報を Git リポジトリから削除する方法も説明します。

Git キャッシュ全体をクリアする

.gitignore ファイルを修正する最も簡単な方法のひとつは、Git キャッシュディレクトリを完全にリセットすることです。これで現在のリポジトリの古いメタデータが削除され、Git は無視リストを正しく適用できるようになります。

まずターミナルセッションを開き、Git リポジトリのフォルダに移動します:

cd ~/your-git-repository

リポジトリのキャッシュをすべて消去するには、git rmと再帰フラグを実行します:

git rm -r --cached.

リポジトリの古いメタデータが適切に削除され、コミットできる状態になっているかどうかを確認します:

git reset.git status

マージされていないデータをリポジトリから再追加するには、以下を実行します:

git add.

リポジトリに新しいコミットを作成して、キャッシュのリセットを確認します:

git commit -am 'リポジトリ全体のキャッシュをリセットします。
A terminal showing a fully reset Git cache.

Git キャッシュから特定のファイルやディレクトリを削除する

Git キャッシュ全体をリセットするだけでなく、git rmサブコマンドで個別のファイルやディレクトリを削除することもできます。これは、現在のステージングエリアを消去したくないけれども、問題のあるファイルをリポジトリから削除したい場合に便利です。

cdコマンドで Git リポジトリに移動します:

cd ~/あなたの Git リポジトリ

ステージングエリアから個々のファイルを削除するには、次のコマンドを実行します:

git rm --cachedyour-file-here.txt

gitrm-rフラグを追加すれば、ディレクトリツリー全体をステージングエリアから削除することもできます:

git rm -r --cached./your/directory/here

Git が不要なファイルやフォルダを削除したかどうかを調べるには、次のコマンドを実行します:

git status
A terminal showing the process of removing a directory from the active stash.

変更を Git ツリーにコミットして、新しい設定を適用します:

git commit -am 'リポジトリから不要なファイルを削除しました。

リポジトリのインデックスの状態を確認して、ファイルが正しく削除されたことを確認します:

ファイル./.git/index
A terminal showing the current status of the repository's index file.

Git からキャッシュされた認証情報をクリアする

Git のもうひとつの優れた機能は、リモートホストに接続する際の認証情報を保持することです。しかし、これは特に共有コンピュータから Git を使っている場合に問題となることがあります。

キャッシュされた認証情報を削除するには、対象の Git リポジトリに移動します:

cd ~/your-git-repository

次のコマンドを実行し、Git が現在のリポジトリの認証情報を受け付けないようにします:

git config --local --unsetcredential.helper

次に、現在のセッションで有効なクレデンシャルをすべて削除します:

gitcredential-cacheexit

最後に、Git インストール用のデフォルトの "credentials" ファイルを削除します:

rm ~/.git-credentials

Git の不要なファイルや認証情報を削除するのは、プロジェクトのリポジトリを管理するための第一歩です。Gitエイリアスと Git フックを使うことで、Git をより効率的に使う方法を学びましょう。

画像クレジット:Gabriel Heinzer via Unsplash.すべての改変とスクリーンショットはRamces Redによるものです。

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。