Как обрабатывать символы с акцентом в именах файлов в Git в Mac OS X, преобразованные в unicode
В моем репозитории Git есть акцентированные файлы как éíóúàììùùùõ_800x600.jpg, но после создания клона я не могу сделать pull, потому что файл выглядит как измененный:
$git clone [...]
done
$git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# "a\314\201e\314\201i\314\201o\314\201u\314\201a\314\200e\314\200i\314\200o\314\200u\314\200a\314\203o\314\203_800x600.jpg"
Тем не менее, я не могу добавить, удалить, reset или закрепить файл.
Я пробовал:
$git add a\314\201e\314\201i\314\201o\314\201u\314\201a\314\200e\314\200i\314\200o\314\200u\314\200a\314\203o\314\203_800x600.jpg
fatal: pathspec 'a314201e314201i314201o314201u314201a314200e314200i314200o314200u314200a314203o314203_800x600.jpg' did not match any files
$git stash
No local changes to save
$git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# "a\314\201e\314\201i\314\201o\314\201u\314\201a\314\200e\314\200i\314\200o\314\200u\314\200a\314\203o\314\203_800x600.jpg"
Как дескриптор с акцентированными файлами преобразуется в unicode?
Ответы
Ответ 1
Вам нужно установить для параметра core.precomposeunicode значение true на Mac и снова клонировать репозиторий.
git config --global core.precomposeunicode true
Как описано в git странице конфигурации, этот параметр связан с конкретной декомпозицией символов Unicode в Mac OS:
Этот параметр используется только для реализации Mac OS git. Когда core.precomposeunicode = true, git возвращает unicode-декомпозицию имен файлов, выполняемых Mac OS. Это полезно при совместном использовании репозитория между Mac OS и Linux или Windows. (Git для Windows 1.7.10 или более поздней версии, или git под cygwin 1.7). Когда false, имена файлов обрабатываются полностью прозрачно с помощью git, которая обратно совместима со старыми версиями git.
Что указывается в man-странице, заключается в том, что этот параметр не имеет обратного эффекта для репозитория, он вступает в силу только после клонирования в репозитории.
Ссылка:
Ответа на этот вопрос Leo Koppelkamm "Git и проблема Umlaut в Mac OS X"
Ответ 2
Как обрабатывать азиатские символы в именах файлов в Git в OS X