Gitで制御されるコードベースには、名前を変更したいファイルがいくつかあります。具体的には、たとえばsourceCode.Java
がSourceCode.Java
になるように、ファイルの大文字と小文字を変更するだけです。キャッチ:私はWindowsボックスを使用していますが、ファイルシステムはそれらが同じファイル名であると考えています。
WindowsとGitでその変更を認識してチェックインするにはどうすればよいですか?
FATファイルシステムを使用している場合、唯一の選択肢は2段階の名前変更を行うことです。
sourceCode.Java
の名前をanything.you.like
に変更しますanything.you.like
の名前をSourceCode.Java
に変更しますPerforceを使用していた頃、まさにこの問題があり、これが唯一の解決策でした。
次の手順により、Windowsでケースを変更できました。
ignorecase = false
から[core]
in .git/config
;ignorecase = false
最初のステップで追加されました。この方法では、名前の変更を含む単一のコミットがあり、簡単に変更できます。ディレクトリ全体。
注意してください。これを行うと、マージできない変更が発生する可能性があります。 Gitは、古い大文字の名前と新しい小文字の名前が同じファイルであるかどうかを判断できないため、Windowsでのマージ時に混乱します(Gitの場合は違いますが、ファイルシステムの場合は違います)。マージするには、マージする前にファイルを削除するなど、手動で回避する必要があります。
同じ名前で大文字小文字が異なるファイルのGitリベースの問題 を参照してください
この問題があなたのプロジェクトに従来とは異なる名前のファイルを置くことよりもずっと悪いかどうかはわかりませんが、最終的にすべてをマージする必要のある多くのブランチを持つ多くのユーザーがいるかどうかを知る価値はあります。
NTFS(またはFAT)では、単一のgit mv
コマンドは問題を解決しません。この質問は機能するテクニックを示しています: git mv and only case case of directory