エス技研

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.

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

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

  関連記事

X Serverへの引越しの注意点まとめ。ロリポップとの違いと対処方法 6事例

ロリポップからX Serverに引越し。ロリポップとX Serverの違いに注目することでX Serverの設定方法を明確にします。またX Serverならではの設定ポイントなども解説。

本当に?GMO系ロリポップ・ヘテムルを無料で運用する方法があった!

ロリポップ、ヘテムルを株主優待を利用して実質無料で運営しよう!という解説記事です。株主優待で提供されるサービスの内容を解説し、無料になる仕組みを解説します。

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

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

Selenium WebDriverでFirefoxをプライベートウィンドウ/Chromeをシークレットモードで起動する方法・言語はpython

Seleniumでは初期状態でブラウザを起動する   Seleniumでブラウザ …

ブラウザのキャッシュを活用するの対策!広告バナーを消して表示を高速化

あなたのサイトが遅いのはバリューコマースのバナーではないですか?バリューコマースのバナーを外すだけでmod_deflateとmod_expiresを設定するより効果があります!

SyntaxHighlighterを導入してソースコードを見やすくしてみました

PHP、HTMLなどのソースコードをブログで紹介するとき、SyntaxHighlighterを利用することで見やすく提供することが出来ます。

Selenium WebDriver、Pythonをインストールし Chromeの自動操作の環境構築手順のまとめ

Selenium WebDriverを使ってChromeを自動操作する環境を構築する手順のまとめ。使用するPythonのインストールから、サンプルスクリプトの動作確認までを詳細解説。

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

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

mod_pagespeedカスタマイズで高速化を詳細解説・Google謹製

mod_pagespeedをデフォルトのまま使っていませんか?mod_pagespeedはデフォルトのままでも速い!でも仕組みを理解し設定し直せばより速くなる!

借りてはいけないレンタルサーバ実例4社・アルファメール・WEBアリーナ

餅は餅屋。サーバはサーバ屋が提供するサービスを利用するべきという記事で、具体例 4サービスを例にこんなサーバはNGと紹介しています。