[TurtoiseGit]ファイル名の大文字小文字を変更したい場合

巷にある対処法として、

git config core.ignorecase false

というコマンドがありますが、TurtoiseGit (Windows) を使っている場合、これでは解決できなかった(り、想定外のハマり方をする)ので、別の対処法を示します。

core.ignorecase を TurtoiseGit で変更する(→ハマる)

この方法は解決にはならないので注意(やったら不幸になる例として紹介します)

コマンドラインで上記コマンド(git config core.ignorecase false)を入力しても TurtoiseGit には反映されません。

monster「C」ode に変更しても、コミット対象にならない


代わりに、TurtoiseGit > 設定 を開きます。

ローカルリポジトリ設定を編集

ignorecase = false に書き換える

こうすることで、大文字小文字が違うファイルを「別ファイル」として認識し、コミット&プッシュできるようになります、が…。

Windows は大文字小文字が違うファイルを別ファイルとして認識しない

そうです。先の例の monstercode.txt、monsterCode.txt、この2つは Windows において「同一ファイル」と見なされます。

という事は、いくら Git で上記ファイル(2つ)がプッシュされていても、クローンするとどちらか1つになってしまいます。予想外かつ、致命的な状況です。

ですので、Windows で使っている場合においては core.ignorecase = false 自体が悪手ということになります。

Mac や Linux であれば問題ありませんが、Windows 使っている人とやりとりしている場合は注意してください。

この状態を回避する方法

正しい解決策とは言いづらいですが、「なんとかする」事は可能です。

  1. 元のファイル名:monstercode.txt
  2. change.txt に名前変更し、新規ファイルとしてコミット(&プッシュ)
  3. monsterCode.txt に名前変更し、新規ファイルとしてコミット(&プッシュ)

このように、間に別の名前を挟むことで変更することができます。

ただし「回避策」なだけあってとても非直感的な対処方法ですので、多用はしないようにしましょう。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA