トラブルシューティング
ファイル名の大文字・小文字変更が反映されない問題
macOS/Windows でファイル名の大文字・小文字だけ変更しても Git が検知しない問題と対処法
問題の原因
macOS と Windows のファイルシステムは大文字・小文字を区別しません(case-insensitive)。
そのため、ファイル名を「File.txt」から「file.txt」に変更しても、OS レベルでは同じファイルとして扱われ、Git も変更を検知しません。
Git の設定 core.ignorecase が true(デフォルト)になっていることが原因です。
git mv で安全にリネームする
git mv コマンドを使うと、Git のインデックスレベルでファイル名を変更できるため、大文字・小文字の変更も正しく反映されます。
これが最も安全で推奨される方法です。
bash
# 大文字から小文字に変更
git mv File.txt file.txt
# ディレクトリ名の変更も同様
git mv Components components
# 変更を確認
git status一度に変更できない場合の回避策
一度別名にリネーム
git mv File.txt file-temp.txtのようにまったく別の名前に変更します。目的の名前にリネーム
続けて
git mv file-temp.txt file.txtで本来の名前に変更します。まとめてコミット
2 段階分の変更を
git commit -m "Rename File.txt to file.txt"でまとめます。
bash
# 2段階リネーム
git mv File.txt file-temp.txt
git mv file-temp.txt file.txt
git commit -m "Rename File.txt to file.txt"core.ignorecase の設定について
core.ignorecase を false に変更すると Git が大文字・小文字を区別するようになりますが、OS のファイルシステムと矛盾が生じるため推奨されません。
同じディレクトリに「File.txt」と「file.txt」が共存するような状況が発生し、予期せぬトラブルの原因になります。
git mv を使う方法が安全です。
bash
# 現在の設定を確認(変更は非推奨)
git config core.ignorecase
Git Ready