3

Недавно я обновил git 1.7.7.1 до git 1.8.3, и теперь у меня возникают проблемы с файлами, которые содержат умлауты в своих именах. Когда я пытаюсь удалить их, я получаю сообщение об ошибке

fatal: pathspec 'Tiefkühl_Buttons_60px.gif' did not match any files

В файловой системе файл существует с этим именем, в git-bash он указан как "Tiefk\374hl_Buttons_60px.gif" , в моем Git-Frontent (SmartGit 4.5) он называется Tiefk�hl_Buttons_60px.gif .

При использовании git-bash я не могу удалить этот файл, потому что не могу набрать символ ü (просто не работает). Когда я пытаюсь использовать экранированный октет (\374), он интерпретируется как сегмент пути (Tiefk/374l_Buttons_60px.gif)

При использовании обычной командной строки (cmd.exe) и вызове git.exe я получаю сообщение об ошибке

Warning: Your console font probably doesn't support Unicode. If you experience  
strange characters in the output, consider switching to a TrueType font such as 
Lucida Console!

Переключение шрифта снова приводит к первой ошибке.

Я попытался вызвать команду через BAT-файл, сохраненный как ANSI (с 0xFC в качестве кода для ü) и UTF-8, но все еще безуспешно.

Я также пытался вызвать git add -u . добавить файл в индекс и удалить его позже, но это просто не добавляет его

Есть ли другой способ удалить файл из git?

2 ответа2

2

Хорошо, я нашел способ, который работает ...

Я не удалил ни одного файла, а всю содержащую его папку из кеша, используя

git rm --cache -r Katalog

После этого я удалил удаление из всех файлов, кроме файла-нарушителя, чтобы они не были удалены, и добавил файл с правильным именем (с правильным умлаутом).

После коммита все снова было нормально

0

это было, вероятно, больше, чем вы должны были сделать ... У меня была такая же проблема с моими файлами и папками. В моем проекте у меня есть каталог, который содержит все блок-схемы с именем

Abläufe

в моем исключении у меня была линия с

Abläufe \. После обновления до версии 1.9x из git Abläufe был зарегистрирован как неотслеживаемый файл. Очевидно, исключить больше не работает. Решение и причина такого поведения заключается в том, что файлы исключения были созданы в ASCII. Я просто открываю файл исключения в notepad++ и перекодирую его в utf8 unicode и сохраняю файл ... и вуаля проблема решена

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .