エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


.gitignoreを更新しても反映されないときは「git rm -r –cached .」でキャッシュを削除

      2019/02/24

.gitignoreを更新したときは「git rm -r –cached .」でキャッシュを削除

 

.gitignoreを更新したときのキャッシュクリアのまとめ

 
.gitignoreを更新して、「git status」コマンドを入力してみたけれど、管理対象にしたファイルが反映されない、ということが発生する場合があります。
 
その理由は、Gitのキャッシュがあるため。
 

 
を実行して、キャッシュをクリアすると解決します。
 
 
.gitignoreファイルの設定方法については下記を参照してください。
.gitignoreで無視フォルダの中の特定のファイルを除外「!(否定文)」を使う場合の注意点
 


 

.gitignoreに設定されていたフォルダを管理対象にするような場合

 
CakePHP3にデフォルトで設定されている「.gitignore」には「/vendor/*」の設定があり、「vendor」フォルダ、および、フォルダの中にあるフォルダ、ファイルはすべて Gitの管理下から外されています。
 
ですが、開発の内容によっては「vendor」フォルダの中にライブラリをインストールし、その中に作成したプログラムを設置。
そして、その設置したフォルダ、ファイルは Gitの管理下に置きたい、と思う場合もあるでしょう。
 
そんなときは、下記の記事で紹介したように管理対象にしたいファイルの情報を .gitignoreに記載します。
.gitignoreで無視フォルダの中の特定のファイルを除外「!(否定文)」を使う場合の注意点
 
 
そして、設定変更をした .gitignoreファイルをサーバにアップし、「git status」コマンドを実行すると、本来は Gitの管理対象にした vendor内の特定のファイルは、追加されたファイルのリストの中にでてくるはずです。
 
ですが、.gitignoreに設定した情報が反映されない場合があるのです。
 
その理由は、Gitは更新情報をキャッシュとして持っているためで、管理対象外となっている「vendor」フォルダの中にあるファイルを管理対象にしたい、と設定しても、キャッシュがあるせいで .gitignoreの設定内容が反映されないのです。
 
そのために、キャッシュを削除する必要があります。
 
 
キャッシュをクリアするコマンドは下記のようになります。
 
下記は、すべてのキャッシュを一括して削除します。
 

 
 
すべてのキャッシュを削除することに抵抗がある場合は、下記のようにファイルごとに指定することもできます。
 

 
具体的には下記のようになります。
 

 
 
git rm -r --cached .」を実行すると、すべてのキャッシュが削除されます。
すべてのキャッシュを削除するのが怖い、という感覚は理解できますが、コミットするとまた同じ様にキャッシュが保存されますので、まず試してみる!という気持ちも必要かと思います。
 
 

.gitignoreを更新したときの手順

 
具体的な手順は以下のとおりです。
 
.gitignoreを更新した後、下記のコマンドを実行します。
 

 
最初に「git status」では、「.gitignore」が更新されたファイルとして表示されます。
 
次に「git rm」でキャッシュを削除します。
その次の「git status」では、キャッシュされていたファイルの一覧の表示されます。
おそらくすごい量のファイルのリストが表示されるでしょう。
 
そして、「git add」のあと「git status」を実行すると、更新された .gitignoreの内容に従って更新されたファイルのみが表示されます。
 
このとき、想定したファイルが正しく追加、削除されていることを確認します。
想定していた結果と違う場合は、一度「git commit」した後、改めて、.gitignoreファイルを更新し、最初の「git rm」からやり直します。
何度でもやり直しができますので安心してトライしてみてください。
 
 

「git rm -r –cached .」コマンドを実験してみたときの手順

 
キャッシュを削除するコマンドを実験してみたい場合は、.gitignoreを何も変えない状態で、また、「git status」を実行しても更新しているファイルがない状態で、実行してみるといいんじゃないかと思います。
 
実験してみるコマンドの例としては以下のような感じです。
 

 
最初に「git status」では、更新ファイルはない、というメッセージが表示されます。
次に「git rm」でキャッシュを削除しますので、その次の「git status」では、キャッシュされていたファイルの一覧の表示されます。
おそらくすごい量のファイルのリストが表示されるでしょう。
 
そして、「git add」「git commit」を実行すると、「git rm」を実行する前の状態に戻りますので、「git status」を実行しても更新ファイルはない、というメッセージが表示されます。
 
 
また、上記のキャッシュのクリアを試してみたい場合は、実験用のブランチを作成し、そこで実行する、という方法もより安全に実験する方法として利用できるでしょう。
 
ただ、当然ながら、gitの管理下にない場合は、ブランチを切り替えてもなくなりませんが、.gitignoreファイルを更新し、gitの管理下になったファイルは、ブランチを切り替えるとなくなります。
 
そのため、ブランチを切り替えたとき、「ファイルが消えた!」と思ったりして、慌ててブランチを削除しないようにしてくださいね。
 
 

Git関連の記事

Gitはフォルダ自体を管理対象にはできない。空のフォルダを設定する手順
.gitignoreを更新しても反映されないときは「git rm -r --cached .」でキャッシュを削除
.gitignoreで無視フォルダの中の特定のファイルを除外「!(否定文)」を使う場合の注意点
Gitで「fatal: Authentication failed for 'https://example.com/git_repositories/example.git/'」のエラーが出た場合の対処方法の一つ
Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説
 
その他の「git」に関する記事一覧
 
 

 - プログラミング・Web関連技術

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

PythonでMySQLへの接続ライブラリMySQL-pythonの簡単インストール方法

PythonはMySQLに接続するライブラリは別途インストールが必要。なのでMySQL-pythonライブラリのインストール方法とサンプルスクリプトで動作検証までを解説。

WordPress、Webサイトの表示高速化!画像を軽くする基本的な考え方

画面表示の高速化には画像のファイル容量を小さくする方法があります。ツールを使わなくても小さくするための基本的な考え方を解説します。

Pythonをコマンドラインで実行。全角文字(日本語)を引数にする場合の対処方法

Pythonをコマンドラインで実行する際、引数を付与して実行する方法の解説。その時問題となる日本語(全角文字)を利用する方法を解説。Windows環境での解説。

chromedriver.exe - ディスクがありませんと出てSeleniumの設定が上手くいかない
chromedriver.exe – ディスクがありませんと出てSeleniumの設定が上手くいかない

Selenium WebDriverを使ってChromeを自動操作する仕組みを作る際、chromedriver.exeを利用しますが、ディスクがありません、というエラーが発生する場合があります。その対処方法を解説します。

CentOS環境に ntpdをインストールして自動的に時刻を取得する設定にする
CentOS環境に ntpdをインストールして自動的に時刻を取得して合わせる設定にする

VirtualBoxに構築した CentOSの環境の時計がずれているとき、ntpdをインストールし、時計を合わせる方法を解説。NTPサーバを指定する方法や ntpdを自動起動する設定も解説。

Beautiful Soupを利用してPythonでスクレイピングを行う環境構築方法の解説

BeautifulSoupはPythonでスクレイピングを行う際に便利なツール。インストール方法も簡単。ただ、事前にpipのインストールが必要でその解説もしてます。

EストアのショップサーブのWordPressサービスにメリット無し

ショップサーブのオプションサービスのWordPressを使ってみましたがデータベースには直接触れず使えないサービスでした。

Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説
Gitで基本的なデプロイ(push、pullで本番公開)環境を作る手順解説

開発進行中の環境、公開中の環境にGitを導入する。その基本的な手続きを解説。Gitの導入、ローカルリポジトリを作成。リモートリポジトリを利用し、本番環境にデプロイする手続きを解説。

Webサイト公開時に重複コンテンツを排除する.htaccessのリダイレクトの設定のまとめ

サイトを公開する際にはURLの正規化は必須です。正規化とは何かを解説し、.htaccessに設定すべきリダイレクトの設定を具体的に説明します。

.htaccessのmod_expiresでブラウザキャッシュで高速化でSEO対策!

Page Speed Insightsの指摘事項のファイルのブラウザキャッシュの設定方法。解説もしてるけど、.htaccessにコピペするだけの簡単設置で効果抜群!SEOにも威力を発揮!