開発をしていると耳にしないことの方が少ない Git 。
Git はファイルのバージョン管理をするのには欠かせない存在です。
ファイルの変更差分等を管理してくれるので非常に便利です。
ですが時にはシークレット情報を記載したファイルや個人環境の設定ファイルなどコミットしたくないファイルもあると思います。
そんな時に設定するのが .gitignore ファイルだと思います。ファイル名からも想像をつくとは思いますが、.gitignore で設定されたファイルは Git でのバージョン管理対象から外れます。
だから多くの人が設定をしていると思います。
ただ時には設定をしたのにも関わらず設定が反映されないことがあると思います。
今回はそんな場合の対象方法を紹介します。
.gitignoreが反映されない時の対応方法
.gitignore にファイルを対象ファイルを設定したがファイルの修正が変更差分に表示されてしまう。多くの場合は下記に示す2つのパターンの内のどちらかが原因であることが多いです。
ですので .gitignore の変更が反映されずに困っている方は下記をチェックしてみてください。
ファイルパスのミス、ファイルスペルミスが原因
これは非常に多いです。設定するファイルのパスが間違っていたり、スペスミスによって正しく設定できていなかったりすることが原因で変更が反映されないパターンです。
この初歩的なミスは人間あるあるなのでまずは1番に疑ってみることをお勧めします。
.gitignore のファイル名自体が間違っていないかもしっかりと確認してくださいね。
スペルミス等は正しかった、また間違っているのを修正したが上手く反映されなかった、そんな時は次に記載しているキャッシュの削除を試みてください。
キャッシュが原因
続いてキャッシュが原因の場合です。詳細な原因説明は後で実施します。
キャッシュが原因の場合は下記のキャッシュを削除するコマンドを実行してください。
git rm -r --cached .
上記のコマンドを実行したたら後は通常のコミットとプッシュを実施します。
キャッシュ削除のコマンドを実行すると deleted の差分がたくさん表示されて少し心配になるかもしれませんが、問題ありません。ローカル環境の何かのファイルが削除された訳ではありません。
気にせずコミットとプッシュをしましょう。
なぜキャッシュが原因となったのか?
キャッシュが原因となる場合は下記の場合です。
大抵の場合はこれが原因です。少なくとも自分はキャッシュが原因になっている時はこれ以外の理由に出会ったことはありません。
すでにコミットされているファイルはキャッシュにインデックスが残ってしまっているので .gitignore の設定が反映されないのです。
開発をやっていて最初から管理したくないファイル全部を洗い出して設定できるとは限りません。
コミット&プッシュして Merge request, Pull request で差分を見て初めてコミットされるべきでないファイルがコミットされていることに気づき設定をいれるってこともあると思います。
そんな時は必ずこの問題に直面すると思います。
ですのでキャッシュを削除するってことは頭の片隅に置いていても損はないと思います。
まとめ
皆さんの問題は解決しましたでしょうか?
タイポのようなケアレスミスはみなさん最初に疑うと思います。
また既にコミットしてしまっている場合に関しては、コマンドを覚えなくてもキャッシュを消せばいいってことが頭の片隅にあればあとは検索すればいいだけなので、解決は難しくはないと思います。
皆さんのs役に立ちますと幸いです。
コメント