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 'リポジトリ全体のキャッシュをリセットします。
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
変更を Git ツリーにコミットして、新しい設定を適用します:
git commit -am 'リポジトリから不要なファイルを削除しました。
リポジトリのインデックスの状態を確認して、ファイルが正しく削除されたことを確認します:
ファイル./.git/index
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によるものです。