2012-01-18 5 views
70

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

+1

Может быть, вы могли бы создать файловую систему ext3 над изображением, смонтировать его и тянуть в этом случае с учетом регистра файловая система. –

+0

@ AndréPuel ну, на самом деле я искал что-то «легче». : P, но спасибо за совет, я поеду за ним, если не найду других решений. – entropid

ответ

114

Возможно, это может быть обходным решением, аналогичным this comment in an msysgit issue (для другой нечувствительной к регистру ОС: 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" 

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

См "Git: Changing capitalization of filenames"

+1

Это работало как шарм! Спасибо!:)) – entropid

+1

для меня это работает, только если я совершу после первого хода. –

+1

Я заметил, что при переименовании таким образом второе переименование может занять время * looooong *. Ответ должен быть терпеливым; папка в конечном итоге переименуется, тогда вы можете ее зафиксировать. – NathanAldenSr

9

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

Предлагаю вам создать еще один образ диска и, в частности, отформатировать его как «HFS Case Sensitive».

+0

Спасибо за подсказку, но сообщение выше этого все решило! – entropid

+7

К сожалению, много плохого программного обеспечения (конечно, Adobe) полагается на стандартную файловую систему OSX по умолчанию. Будьте осторожны. –

1

На форуме обсуждения [email protected], посвященной проблеме чувствительности к регистру, появилась длинная недавняя тема, озаглавленная Bug? Git checkout fails with a wrong error message, в которой освещаются проблемы и вещи, которые необходимо учитывать, чувствительности к регистру между различными платформами.

14

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

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

Disk Utility Settings

+0

Работал отлично! –

+0

Гораздо лучшее, постоянное решение этой проблемы и другие загадки, вызванные чувствительностью к регистру. Я сделал образ диска; скопировал мой старый репозиторий Git; сделал символическую ссылку, из которой я использовал все мои git-репозиции для новой, редкой версии пакета. Вернитесь к нормальному рабочему процессу, чтобы больше не встречаться с этим. – jwd630

+0

Созданный таким образом диск очень медленный. –

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

Yup. Вы должны идти вперед и совершать это. ++ – RubberDuck

5

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

git config core.ignorecase false 

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

[core] 
    ignoreCase = false 
Смежные вопросы