Я изменил несколько файлов де-прописной первую букву, как в Name.jpgв
name.jpg`. Git не распознать эти изменения и мне пришлось удалить и снова загрузить их. Есть ли способ, что Git может быть чувствительным к регистру при проверке изменения в именах файлов? Я не сделал никаких изменений в сам файл.
Вы можете использовать в Git МВ:
git mv -f OldFileNameCase newfilenamecase
Git имеет параметр конфигурации, что говорит он, следует ли быть с учетом регистра или без учета регистра: основной.параметром ignorecase`. Чтобы сказать Git, чтобы быть в случае, не терпящих, просто установите этот параметр в значение "false":
git config core.ignorecase false
Из [документации по Git файл config
] (http://jk.gs/git-config.html):
сердечника.параметром ignorecase
если true, этот параметр позволяет различные обходные пути, чтобы ЖКТ лучше работать на файловых системах, которые не чувствительны к регистру, как жир. Например, если список каталогов находок из Makefile`, когда ГИТ ожидает "формирование файла", то git будет предположить, что это действительно один и тот же файл, и продолжают помнить его как "формирование файла".
значением по умолчанию является false, за исключением ГИТ-клон(1) или ГИТ-инит(1) будет зонд и установить ядро.параметром ignorecase` true, если соответствующие при создании репозитория.
Две самые популярные операционные системы, которые чувствительны к регистру файловых систем, которые я знаю,
Используя конечно, я был в состоянии сделать это все из пользовательского интерфейса
.ВН " на " что угодно.доб
Это'ы немного нудно, но если вам нужно только сделать его на несколько файлов, это'ы довольно быстро
Это то, что я сделал на ОС Х:
git mv File file.tmp
git mv file.tmp file
Двух шагах, потому что в противном случае у меня существует файл “ошибка”. Наверное, это можно сделать в один шаг, добавив --кэшированные
или подобные.
Иногда это может быть полезно временно изменения в Git'с чувствительность к регистру. Есть 2 способа сделать это...
Способ #1 - изменение чувствительности к регистру для одной команды:
ГИТ-с ядром.параметром ignorecase=истина mybranch кассе
чтобы отключить чувствительность к регистру для команды один "оформить заказ". Или более обобщенно: ГИТ-с ядром.параметром ignorecase=
<<true или false>>
<<команда>>
. (Кредит VonC за то, что в комментариях.)
Способ № 2 - изменение чувствительности для нескольких команд:
Для изменения настройки дольше (например, если несколько команд необходимо выполнить перед изменением его обратно):
ГИТ конфиг ядра.параметром ignorecase
(это возвращает текущую настройку, например, "ложь").ГИТ конфиг ядра.параметром ignorecase
<<true или false>>
- установите нужный новой установки.ГИТ конфиг ядра.параметром ignorecase
<<false или True>>
- заданное значение конфигурации обратно к предыдущей настройке.Под OSX, чтобы избежать этой проблемы и избежать других проблем с развивающимися в нечувствительной к регистру файловой системы, вы можете использовать утилиту диска для создать чехол sensitive виртуальный диск / образ диска.
Запустить Дисковую утилиту, создать новый образ диска, и использовать следующие параметры (или изменить, как вам нравится, но держать его с учетом регистра):
Убедитесь в том, чтобы сообщить git сейчас на регистру ФС:
git config core.ignorecase false
Я пробовал следующие решения от других ответов, и они не't работа:
Если ваш репозиторий хранится удаленно (на GitHub, Гитлаб, оба), вы можете переименовать файл в Origin (GitHub.com) и заставить переименовать файл в сверху вниз.
Приведенные ниже инструкции относятся к GitHub, однако общая идея в них должна применяться к любому удаленному репозиторию-хостинг платформы. Имейте в виду, тип файла, вы'вновь пытается переименовать вопросах, то есть, это'ы тип файла, на GitHub считает редактируемые (код, текст и т. д.) и нередактируемом (изображения, двоичный и т. д.) В браузере.
Похожие на @Sijmen'ы ответ, что работал для меня на OSX, когда переименование каталогов (навеяно это ответ из другого поста):
git mv CSS CSS2
git mv CSS2 css
Просто делаешь в Git МВ Усс Усс
дал недопустимый аргумент ошибка: ошибка: переименование '/статический/УСБ' ошибка: недопустимый аргумент
возможно, потому, что на OSX'ы файловой системы регистр
С. ы кстати, если вы используете Джанго, collectstatic также не'т признают разницу случае и вы'd нужно было делать выше, вручную, в статическом корневой каталог
Я использовал следующие шаги:
ГИТ РМ -Р --кэшированные . в Git добавить-все . коммит в git'е -а-м;версионирование неотслеживаемые файлы и quot и" git толчок происхождение мастер
Для меня это простое решение
Mac и OSX с высокой Сьерра-10.13 исправления это немного. Просто сделать раздел виртуального APFS для ваших git-проектов, по умолчанию он имеет ограничение на размер и не занимает место.
мерзавец
и ЛН-з /объемы/чувствительной/ГИТ /пользователи/пользователь johndoe/ГИТ
Ваш диск будет в /объемы/чувствительной/
Я'вэ столкнулись с этой проблемой несколько раз на macOS. Git является чувствительным к регистру, но Mac-это единственный случай сохранения.
Кто-то совершал файл: Foobar.java и через несколько дней решает переименовать его в
FooBar.java. Когда вы тянете последний код выдает следующий неотслеживаемые файлы рабочего дерева будут переписаны на кассе...
Единственный надежный способ, что я'вэ видел, что исправляет это:
ГИТ РМ Foobar.java
перебазировать -я Глава~2
и падение
на темп совершить!!
Когда вы'ве сделано большое переименование файлов и некоторые из них являются просто смена корпуса, он's жесткий, чтобы вспомнить, что есть что. на " вручную;ГИТ движется" в файл можно вполне определенную работу. Так что я буду делать во время моей задачи изменения имени:
Это позволит устранить все проблемы случае не пытаясь выяснить, какие файлы или папки переименованы.
Если ничего не получилось используйте команду git rm имя файла удалить файл с диска и добавить его обратно.
Я взял @CBarr ответ и написал скрипт на Python 3, чтобы сделать его список файлов:
``питон
импорт ОС импорт shlex импорт подпроцесса
деф run_command(absolute_path, имя_команды): печать( "не работает" и, имя_команды, absolute_path )
команда = shlex.сплит( имя_команды ) command_line_interface = подпроцесса.К popen( команды в stdout=подпроцесса.Трубы, чвд=absolute_path )
вывод = command_line_interface.общаться()[0] печать( вывод )
если command_line_interface.код_возврата != 0: поднять RuntimeError( "а процесс завершен с ошибкой '%ы'...на" % ( command_line_interface.код_возврата ) )
деф главным образом(): FILENAMES_MAPPING = \ [ (Р"и F:\SublimeText\Data", Р"в ридми.И quot МД; Р"в ридми.на" МД;), (Р"и F:\SublimeText\Data\Packages\Alignment", Р"в ридми.и quot МД; Р"в ридми.на" МД;), (Р"и F:\SublimeText\Data\Packages\AmxxEditor", Р"в ридми.И quot МД; Р"в ридми.на" МД;), ]
для absolute_path, старое_имя, новое_имя в FILENAMES_MAPPING: run_command( absolute_path, что "в Git МВ '%ы' '%С1' что" % ( старое_имя, новое_имя ) ) run_command( absolute_path, и"Добавить в Git '%С1' что" % ( новое_имя ) ) run_command( absolute_path, "и коммит в git'Е -М 'нормализует \'%ы\' с учетом регистра; то" именем' % ( новое_имя ) )
run_command( absolute_path, что "в Git МВ '%С1' '%ы' что" % ( Новое имя, новое имя ) ) run_command( absolute_path, и"Добавить в Git '%ы' что" % ( новое_имя ) ) run_command( absolute_path, что "коммитов --изменить --нет-изменить и" )
если имя = = и"основнойи": главная() ``