以前とは異なる大文字/小文字を使用するようにファイル名を変更しようとしています。
git mv src/collision/b2AABB.js src/collision/B2AABB.js
fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js
ご覧のとおり、Git はこれに激怒します。私mv
も単純な古いコマンドを使用して名前変更を試みましたが、Git は名前変更を認識しません (名前変更として、または新しい追跡されていないファイルとして)。
同じ名前のファイルを大文字と小文字の使い分けを変更するにはどうすればいいでしょうか?私はMac OS X v10.7.3 (Lion) でGit 1.7.9.1を使用しています。Zシェル(zsh)4.3.15。
ベストアンサー1
Git 2.0.1 (2014 年 6 月 25 日) 以降では、git mv
大文字と小文字を区別しない OS でのみ動作します。
見るコミット baa37bfによるデビッド・ターナー(dturner-tw
)。
mv
: 大文字と小文字を区別しないファイルシステムで大文字と小文字を修正するために名前の変更を許可する
git mv hello.txt Hello.txt
大文字と小文字を区別しないファイルシステム上の" " は常に " destination already exists
" エラーを引き起こします。これは、これら 2 つの名前がファイルシステムの観点から同じパスを参照し、--force
インデックスに記録されたパスの大文字と小文字を修正するときと次のコミットでユーザーが " " を指定する必要があるためです。
このケースを検出し、「
--force
」を要求せずに許可します。
git mv hello.txt Hello.txt
そのまま動作します(もう--force
必要ありません)。
他の選択肢は次のとおりです。
git config --global core.ignorecase false
そして、ファイルの名前を直接変更し、git add してコミットします。
CMDでは動作します。git bash(Windows)セッションでは失敗する可能性があります(ルイ・カロンの答え)
次のように指摘されている。ジャキノコードでコメントローカルリポジトリ自体にその設定がある場合:
git config --local core.ignorecase false