@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Git: case insensitive なファイルシステム上でファイル名・ディレクトリ名の大文字小文字をリネームするときの `git mv` コマンドと `core.ignoreCase` オプションの関係まとめ

必要に迫られたので調べた。ちょっとややこしかったので動作確認用のスクリプトを作って、結果を見比べられるようにした。

GitHub - kyanny/git-core-ignoreCase-example

ポイント

  • ファイル名の変更をする場合は git mv -f で OK。-f が不要な場合でもつけて問題ない。
  • ディレクトリ名の変更をする場合は git mv A/ a/ みたいに一発ではできない。一時ディレクトリにリネームしてから、もう一度リネームする。
  • ファイル名とディレクトリ名を同時に変更したい場合は↑を続けてやれば OK。順不同。間に他の操作が混ざらないように注意。
  • mv(1) を使ってはいけない(ファイルやディレクトリが増加するトラブルのもと)。git mv を使いましょう。

検索用キーワード: case sensitive