gitでファイル名を小文字から大文字に変えてもgit addできず、コミットできない時の対応
地味にハマることの多い現象です。
小文字から大文字
とあるプロジェクトでファイル名の命名規則がアッパーキャメルに変わりました。
小文字から大文字に修正してgitにcommitしてpushしようとしたのですが。
sampleClass.js -> SampleClass.js
しかし、差分が表示されずcommitできない・・・
コミットできない原因
gitではデフォルトで大文字・小文字を区別しないようです。
プロジェクトフォルダ内の.gitフォルダにあるconfigファイルに下記の記載があります。
ignorecase = true
これは、ファイル名の大文字・小文字の変更は検知しない設定です。
解決法
ignorecase = false
にすると、大文字・小文字を区別してcommitできるようになりました。
まとめ
Windowsで開発しているとincludeやrequireでファイルも読み込んでも、ファイル名の大文字・小文字は関係ありません。
ちゃんと読み込んでくれます。
しかし、Linux系のサーバーでは大文字・小文字は区別されるのでファイルが存在しないって怒られます。
Windowsでローカル開発後にLinuxサーバで結合テストしようとした際にエラーになることがたまにあります。
わかっていれば慌てることはないのですが、知らないと「ローカルでは動いたのになんで??」って焦ります。
まぁ、プロジェクトの途中で命名規則を変えるなよって話ですが。