Подтвердить что ты не робот

Чувствительность к регистру в Git

У меня возникла проблема с git. В основном я установил значение false core.ignorecase, потому что я хотел изменить случай имен некоторых папок (так как я под OSX с файловой системой без регистра, изменения не были показаны иначе). Когда я вытащил свои данные, я заметил, что теперь каждая переименованная папка дважды появляется в репозитории, как с старым, так и с новым именем. Я не знаю, что делать, чтобы удалить старые папки, поскольку они не отображаются локально (я пытаюсь установить core.ignorecase на true, но это не помогает).

4b9b3361

Ответ 1

Может быть, обходной путь похож на этот комментарий в проблеме msysgit (для другой нечувствительной к регистру ОС: Windows) может помочь?

Я столкнулся с этой же проблемой. Реализовано имя пакета в Eclipse и переключение на предыдущую сборку произошло из-за отказа имени папки. Я использую Windows 7, Git 1.7.0.2.msysgit.0

Моя папка была переименована в Windows на "folder", но была отображена как "folder" в Git.
Я исправил проблему, переименовав ее в "folder" в Windows и затем выполнив:

git mv "Folder" "Folder2"
git mv "Folder2" "folder"

Обратите внимание, что , так как Git 2.0.1 (июнь 2014), git mv Folder folder должен работать!

См. "Git: изменение капитализации имен файлов"

Ответ 2

Вы можете создать образ диска (желательно образ диска sparsebundle) с файловой системой, зависящей от регистра, и проверить там репозиторий git.

Снимок экрана Disk Utility ниже показывает, как создать образ диска, чувствительный к регистру.

Disk Utility Settings

Ответ 3

Mac OS X по умолчанию "нечувствителен к регистру, но сохраняет регистр". Это важное различие.

Я предлагаю вам создать другой образ диска и, в частности, отформатировать его как "HFS Case Sensitive".

Ответ 4

Используйте следующую команду для macOS. Это изменит вашу конфигурацию git на чувствительность к регистру на имена файлов.

git config core.ignorecase false

Вы можете установить это глобально, отредактировав ~/.gitconfig и установив его под core, например:

[core]
    ignoreCase = false

Ответ 5

git mv "Folder" "Folder2"
git mv "Folder2" "folder"
git commit -a -m "my message"

Ответ 6

На форуме обсуждения git @vger.kernel.org появилась длинная недавняя статья о проблемах с чувствительностью к регистру Ошибка? Git выдается ошибка с неправильным сообщением об ошибке, в котором освещаются проблемы и вещи, которые необходимо попробовать, чувствительности к регистру между различными платформами.