Git でファイル名やディレクトリ名の大文字/小文字を変更する方法

Git で管理しているプロジェクトで
フォルダ名の大文字小文字を変更しようとしたら
うまくいかなくて悩んだのでメモ。

素直にこうやると

% git mv yebisu/ Yebisu/

何かおこられた。

fatal: renaming 'yebisu' failed: Invalid argument

ディレクトリじゃなくてファイルでやるとわかりやすい。

fatal: destination exists, source=duvel.jpg, destination=Duvel.jpg

「移動先にはファイルが存在するよ」ということでおこられます。

Mac のファイルシステムでは、
大文字小文字の違いがあっても同じものと見なされるんですよね。
Linux なら問題ないと思うんだけど。

ファイルの場合

-f オプションで解決。

% git mv --help

OPTIONS
       -f, --force
           Force renaming or moving of a file even if the target exists

これで、移動先が存在しても名前の変更や移動を強制的にやってくれる。

% git mv -f duvel.jpg Duvel.jpg

ディレクトリの場合

-f つけてもダメだった。

仕方ないのでいったん別の名前にしてから

% git mv yebisu/ _yebisu/

もう一度移動したら

% git mv _yebisu/ Yebisu/

できました。

何だか釈然としないんだけど
いまのところ他に解決方法が思いつきません。

実はこれがものすごく無駄な作業で
もっと賢い方法があるんだったらこっそり教えてください。

  • このエントリーをはてなブックマークに追加