Подтвердить что ты не робот

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 и создания его снова, без файла с испанским символом в имени.

4b9b3361

Ответ 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?) Была отклонена, уже созданный файл остался в месте назначения.