Як зробити зміни в ігноруванні 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.