1. ホーム
  2. git

[解決済み] Git でファイル名の大文字小文字を変更する

2022-03-16 06:21:34

質問

ファイル名を変更し、以前とは異なる大文字表記にしようとしています。

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.

解決方法は?

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 (on Windows) セッションでは失敗するかもしれません ( ルイ・カロン 's 回答 )

の指摘のとおりです。 jaquinocode コメント ローカルリポジトリ自体にその設定がある場合。

git config --local core.ignorecase false