Як зробити зміни в ігноруванні git у випадку?


106

Я не надто впевнений, що тут відбувається, але іноді певний файл у моєму сховищі змінить регістр його імені. наприклад:

перед: File.h

після: file.h

Мені зовсім не байдуже, чому це відбувається, але це змушує git думати, що це новий файл, і тоді мені доведеться піти і змінити ім'я файлу назад. Чи можете ви просто внести зміни в регістр git?

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


1
Re: Visual Studio зберігає файли у малі регістри Яку версію Visual Studio ви використовуєте? Востаннє я перевірив, що це здалося кращим у версії 2008 року. У 2005 році помилка, здавалося, виникає, коли файли відкриваються через відладчик замість провідника рішень.
Адам Міц

Насправді так, це 2005 рік. Хоча на якийсь час оновлення не існує.
1800 р. ІНФОРМАЦІЯ

Відповіді:


177

Оскільки версія 1.5.6 є ignorecaseопція, доступна в [core]розділі.git/config

наприклад, додати ignorecase = true

Щоб змінити його лише для одного репо, запустіть із цієї папки:

git config core.ignorecase true

Щоб змінити глобально:

git config --global core.ignorecase true

21
git config core.ignorecase true або git config --global core.ignorecase true застосовується у всьому світі.
Аарон Дженсен

@graywh: Документовано в git-config під core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html )
Бен Лінгс,

4
Дякую, я нарешті з’ясував, чому git не враховує зміни мого випадку. ignorecase = falseзробив трюк, було встановлено дефолт до true-_-
Алекс C

15

Ви можете змусити git перейменовувати файл лише в регістрі за допомогою цієї команди:

git mv --cached name.txt NAME.TXT

Зауважте, це не змінює регістр файлу у вашій перевіреній копії на розділі Windows, але git записує зміну корпусу, і ви можете зробити це. Майбутні каси використовуватимуть новий корпус.


1
"помилка: невідома опція` кешована "." Він також не вказаний у документах: git-scm.com/docs/git-mv
Алекс

12

У git версії 1.6.1.9 для Windows я виявив, що "ignorecase = true" у config вже встановлено за замовчуванням.


7
Так, і коли ви працюєте з файлами Java, ви хочете, щоб цей параметр був встановлений на хибне, інакше у вас можуть виникнути проблеми при виконанні такого рефакторингу (клас HTMLParser стає HtmlParser або назад).
PhiLho

те ж саме для git версії 2.10.1.Windows.1
Kars Barendrecht

3
Я знаю, що це старе, але в Windows нерозумно встановлювати ігнорувати значення false, оскільки Windows - це нечутлива до регістру операційна система. Це стосується того, чи працюєте ви з Java або (ах!) C # або чим-небудь іншим.
ingyhere

5

Ситуація, описана у питанні, в даний час виникає з Mac OS X, версія git> = 1.7.4 (я думаю). Вилікуванням є встановлення вашого ignorecase = false та перейменування файлів з нижчим регістром (цей git змінився таким чином, а не Visual Studio) назад в їхній UsualCase (тобто 'mv myname MyName').

Більше інформації тут .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.