Является ли git не чувствительным к регистру?
В первом обязательстве моего частичного имени _Electronics
оно было написано с прописными буквами, а затем я изменил его на _Electronics
.
Git под cygwin игнорировал случай после ввода нового имени, поэтому я изменил имя вручную в целевом репо.
Теперь он иногда меняет частичный _Electronics
на _Electronics
.
Что я сделал неправильно?
Ответы
Ответ 1
Это будет рассматриваться как две разные вещи, но вызовет проблемы в системе, не учитывающей регистр. Если это так, убедитесь, что вы выполняете табуляцию по любым путям или именам файлов. Кроме того, чтобы изменить имя чего-то в этом случае, сделайте следующее:
mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"
Это явный способ внесения изменений, совершающих их, затем свертывания коммитов. Более короткий способ сделать это - манипулировать индексом и рабочей папкой все в одном:
git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"
Это также связано с настройкой имен каталогов: git mv и только изменить регистр каталога
Ответ 2
Он будет зависеть от значения конфигурации core.ignorecase
, для которого установлено значение false в чувствительных к регистру файловых системах и true в msysgit в Windows.
core.ignorecase
Если значение true, этот параметр позволяет использовать различные способы обхода, чтобы git работал лучше в файловых системах, которые не чувствительны к регистру, например FAT. Для Например, если список каталогов находит "makefile", когда git ожидает "Makefile", git будет считать, что это действительно тот же файл, и продолжить чтобы запомнить его как "Makefile".
По умолчанию используется значение false, кроме git -clone (1) или git -init (1) будет проверять и задавать значение core.ignorecase true, если это необходимо, когда репозиторий.
Ответ 3
Это намного проще:
git mv Electronics electronics -f
git commit -m "That was easy!"
Ответ 4
git config --system core.ignorecase false