私はWindowsでgitを使用していて、リポジトリに「foo.txt」というファイルがあります。今日は、このファイルの名前を「Foo.txt」(大文字)に変更したいと思いました。このSOの質問で示唆されているように、私はを使用git mv -f foo.txt Foo.txt
しました。これにより、目的の結果が得られました。リポジトリへの変更をコミットしました。
編集:これを永続的な変更にし、この変更より前のコミットをチェックアウトできるようにしたいと思います。
ただし、その後、ブランチを切り替えようとしたときにエラーが発生しました。
# I'm on branch1
git checkout branch2
Aborting
error: The following untracked working tree files would be overwritten by checkout:
Foo.txt
Please move or remove them before you can switch branches.
少し調べてみると、.git/config
ファイルの設定が次のようになって いることがわかりました。
[core]
ignorecase=false
これをtrueに変更すると、問題が修正され、通常どおりブランチ間で変更できるようになります。
だからこれに関して、私は知りたいです:
- この設定による悪影響はありますか?それは常にウィンドウズに当てはまるはずですか?他の開発者と協力していて、同じ値が設定されていない場合はどうなりますか?
- この設定を変更せずにファイルの名前を変更する別の方法はありますか?
- そもそもなぜこれが起こるのですか?変更をコミットしたとき、gitはファイルの名前が実際に変更されたことを正しく識別しました(1つのファイルを削除してから、別のファイルを追加しませんでした)。では、ブランチを切り替えようとしたときに正確に何が起こったのでしょうか。
ありがとう!