場合に応じて git に変更を無視させるにはどうすればよいですか?
質問
ここで何が起こっているのかよくわかりませんが、リポジトリ内の特定のファイルの名前の大文字と小文字が変更されることがあります。例えば。、:
前に: File.h
後: file.h
なぜこれが起こっているのかはあまり気にしませんが、これにより git はそれが新しいファイルであると認識するため、ファイル名を元に戻さなければなりません。git で大文字と小文字の変更を無視するようにすることはできますか?
[編集]この問題は、変更後にファイルを開いて保存するときに最も頻繁に発生するため、Visual Studio がその特定のファイルで何かおかしなことをしているのではないかと思います。ただし、VS のバグを修正する方法はありませんが、git にはもう少し機能があるはずです。
解決
バージョン 1.5.6 以降、 ignorecase
で利用可能なオプション [core]
のセクション .git/config
例えば追加 ignorecase = true
1 つのリポジトリのみを変更するには、そのフォルダーから次を実行します。
git config core.ignorecase true
グローバルに変更するには:
git config --global core.ignorecase true
他のヒント
Windows 用の git バージョン 1.6.1.9 では、設定の "ignorecase=true" がデフォルトですでに設定されていることがわかりました。
次のコマンドを使用すると、大文字と小文字を区別する方法で git にファイルの名前を変更させることができます。
git mv --cached name.txt NAME.TXT
これにより、Windows パーティション上のチェックアウトされたコピー内のファイルの大文字と小文字は変更されませんが、git は大文字と小文字の変更を記録するため、その変更をコミットできることに注意してください。今後のチェックアウトでは新しいケースが使用されます。
質問で説明されている状況は、Mac OS X、git バージョン >= 1.7.4 (だと思います) で再発しています。解決策は、ignorecase=false を設定し、小文字のファイル (Visual Studio ではなく git がそのように変更したもの) の名前を手動で UsualCase に戻すことです (つまり、'mv myname MyName')。
より詳しい情報 ここ.