Git кодировка символов с испанскими символами
Я создал репозиторий из существующих файлов. Внутри набора файлов был один с именем "español.gif". Теперь, каждый раз, когда я делаю
$ git status
Я получаю сообщение об ошибке:
$ path/espa�ol.gif: Protocol error
Я попытался удалить файлы с помощью
$ git rm path/espa�ol.gif
$ git rm --cached path/espa�ol.gif
$ git rm path/espa?ol.gif
$ git rm --cached path/espa?ol.gif
но ничего не меняется, он продолжает говорить "Ошибка протокола".
Если я попробую слияние, я получаю:
Ошибка: ваши локальные изменения в 'path/espa ol.gif' будут перезаписаны слиянием. Aborting.
Есть ли способ удалить файл из индекса и перестать иметь эту ошибку?
Изменить: я решил проблему удаления репозитория Git и создания его снова, без файла с испанским символом в имени.
Ответы
Ответ 1
Это должно решить проблему
git config core.quotepath false
Из man git -config (1) для core.quotepath:
Команды, которые выводят пути (например, ls-files, diff), когда нет с учетом опции -z, будут цитироваться "необычные" символы в pathname путем включения пути в пару с двумя кавычками и с помощью обратная косая черта так же, как и строки в исходном коде C. Если для этой переменной установлено значение false, байты, превышающие 0 × 80, не являются цитируется, но выводится как стенографически. Обратите внимание, что двойная кавычка, обратная косая черта и управляющие символы всегда цитируются без -z независимо от установка этой переменной.
Ответ 2
Вы также можете использовать git clean -d -f
git clean
(вероятно, git clean -d -f
но сначала обратитесь к руководству по git !), Чтобы удалить неотслеживаемые файлы - это является причиной появления сообщения об ошибке "ошибка: ваши локальные изменения....".
Из-за проблем с кодированием Git, вероятно, уже создал файл с неверным именем файла, и хотя вся операция (pull/push?) Была отклонена, уже созданный файл остался в месте назначения.