前にも一回同じ事で困ったことがあるけど、二度と困らないようにブログにしておく。
gitを使ってファイルを管理しているとき、gitに無断でファイルの移動はやってはいけない。gitがそのファイルを追いかけてくれなくなるからだ。
git mv hoge foo
って感じに、ファイルを移動することで正しく追跡を続けてくれる。
困ったのは、Macを使っているときに、次のようなファイル移動をしようとしたとき。
git mv FizzBuzz Fizzbuzz
こういうエラーがでる。
fatal: destination exists, source=FizzBuzz, destination=Fizzbuzz
何のことかというと、Macのファイルシステムではファイル名の大文字と小文字を区別しないそうな。
Git でファイル名やディレクトリ名の大文字/小文字を変更する方法
まあでも、次の操作はできるんだけどね。よくわからない。(あと、Windowsもどうなるかわからない)
touch hoge
mv hoge Hoge
とりあえず、解決策としては、-f を付ければいい。
Gitにおいて非常に怖いコマンド -f だが、やむを得ない
git mv -f FizzBuzz Fizzbuzz
これでいけた。