かもメモ

自分の落ちた落とし穴に何度も落ちる人のメモ帳

Git ファイル名の大文字・小文字の変更が感知されないにハマる

Macのローカル環境だと画像のsrcで小文字でファイル名を指定していて、実際のファイルが大文字になってても表示されちゃったりするので、 うっかりPhotoshopとかでファイル名大文字にしてて大文字のまま画像書き出してコミットしちゃって、本番サーバーでpullしたら画像が表示されなくてミスに気づくなど…時々やってしまいます。

ファイル名をリネームしてコミットすればOKなのですが…
ファイル名の大文字を小文字を変更しただけでは、Gitに変更だと感知されない… だとぅ!?

どうやらGitのデフォルト設定ではファイル名の大文字/小文字を判別してないっぽい。(あれ? これってデフォルトの動作だったっけ…!?)

Gitでファイル名の大文字/小文字を識別させる方法

Gitでファイル名の大文字/小文字を識別させるには ignorecasefalseに設定すれば良いみたいです。

$ git config --global core.ignorecase false
$ git config --system core.ignorecase false

どんなプロジェクトでも識別しておいたほうが良いと思うのでglobalsystemに設定しちゃえば良いように思います。

Git の設定状態を確認

git config -l で設定を確認できる。
globalの設定を確認するには

$ git config --global -l

 
Gitがファイル名の大文字/小文字判別しないの昔もハマった様な記憶があって設定もしたような気がしてたんだけど… OSとかGitのアップデートとかなにかのタイミングで設定がリセットされた? 設定したの別のPCだったのかな… 記憶にない。

というより、ファイル名の大文字/小文字を判別するのはデフォルトにしておいて欲しい!
ファイル名を大文字にしちゃったミス気づきにくいので、Gitよ… なぜ ignorecase をデフォルトで true にした…


[参考]

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉