Как обрабатывать азиатские символы в именах файлов в Git на OS X - PullRequest
38 голосов
/ 10 ноября 2010

Я работаю на американском OS X 10.6.4 и пытаюсь сохранить файлы с азиатскими символами в имени в репозитории Git.

ОК, давайте создадим такой файл в рабочем дереве Git:

$ touch どうもありがとうミスターロボット.txt

Git показывает его в восьмеричной форме UTF-8:

$ git version
git version 1.7.3.1
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   "\343\201\250\343\202\231\343\201\206\343\202\202\343\201\202\343\202\212\343\201\213\343\202\231\343\201\250\343\201\206\343\203\237\343\202\271\343\202\277\343\203\274\343\203\255\343\203\233\343\202\231\343\203\203\343\203\210.txt"
nothing added to commit but untracked files present (use "git add" to track)

К сожалению, я не могу добавить его в репозиторий Git:

$ git add どうもありがとうミスターロボット.txt
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   "\343\201\250\343\202\231\343\201\206\343\202\202\343\201\202\343\202\212\343\201\213\343\202\231\343\201\250\343\201\206\343\203\237\343\202\271\343\202\277\343\203\274\343\203\255\343\203\233\343\202\231\343\203\203\343\203\210.txt"
nothing added to commit but untracked files present (use "git add" to track)

Git просто проигнорировал этот файл.

Использование подстановочных знаков:

$ git add *.txt
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   "\343\201\250\343\202\231\343\201\206\343\202\202\343\201\202\343\202\212\343\201\213\343\202\231\343\201\250\343\201\206\343\203\237\343\202\271\343\202\277\343\203\274\343\203\255\343\203\233\343\202\231\343\203\203\343\203\210.txt"
#

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

Это известная ошибка в Git, или я неправильно использую Git?

1 Ответ

59 голосов
/ 11 декабря 2010

Git цитирует по умолчанию любой не-ascii символ, не только азиатский.Есть возможность отключить это поведение цитирования.

Вы можете отключить его, используя следующую команду:

git config --global core.quotepath false

Или, альтернативно, добавив следующий фрагмент в свой файл конфигурации git ($ HOME/.gitconfig обычно)

[core]
    quotepath = false

После этого git должен показывать ваши имена файлов в точности так, как они есть.

Что касается вашей другой проблемы, то git не добавляет файл с азиатскими символами.только предположите, что это связано с кодировкой, используемой git, не совпадает с кодировкой, используемой вашим терминалом.Я надеюсь, что кто-то еще может вскочить и объяснить это.

...