Как сделать git игнорировать изменения в случае?

Я не слишком уверен, что здесь происходит, но иногда определенный файл в моем репозитории изменит его имя.. Например,

до: File.h

после: File.h

Мне все равно, почему это происходит, но это заставляет git думать, что это новый файл, а затем мне нужно пойти и изменить имя файла назад. Можете ли вы просто сделать изменения git игнорировать регистр?

[править] Я подозреваю, что Visual Studio делает что-то странное с этим конкретным файлом, потому что это происходит чаще всего, когда я открываю и сохраняю его после изменений. У меня нет никакого способа исправить ошибки в VS, но git должен быть немного более способным, я надеюсь.

Ответ 1

Начиная с версии 1.5.6 имеется опция ignorecase, доступная в разделе [core] .git/config

например. добавить ignorecase = true

Чтобы изменить его только для одного репо, из этой папки выполните:

git config core.ignorecase true

Чтобы изменить его глобально:

git config --global core.ignorecase true

Ответ 2

В git версии 1.6.1.9 для Windows я обнаружил, что по умолчанию параметр "ignorecase = true" в config уже установлен.

Ответ 3

Вы можете заставить git переименовать файл в режиме только для случая с помощью этой команды:

git mv --cached name.txt NAME.TXT

Примечание. Это не изменяет случай файла в извлеченной копии в разделе Windows, но git записывает изменение обсадной колонны, и вы можете зафиксировать это изменение. Будущие проверки будут использовать новый корпус.

Ответ 4

Ситуация, описанная в вопросе, теперь повторяется с Mac OS X, git version >= 1.7.4 (я думаю). Исправление состоит в том, чтобы установить ignorecase = false и переименовать файлы с нижним регистром (которые git изменили этот путь, а не Visual Studio) обратно в их UsualCase вручную (т.е. "Mv myname MyName" ).

Подробнее здесь.