39 votes

Comment gérer les caractères asiatiques dans les noms de fichiers dans Git sur OS X

Je suis sur NOUS-anglais OS X 10.6.4 et essayez de stocker des fichiers avec des caractères Asiatiques en son nom dans un dépôt Git.

OK, nous allons créer un tel fichier dans un Git arbre de travail:

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

Git est comme octal échappé 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)

Malheureusement, je ne suis pas en mesure de l'ajouter sur le dépôt 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 tout simplement ignoré ce fichier.

L'utilisation de caractères génériques de travail:

$ 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"
#

mais je voudrais invoquer la commande Git à partir d'une demande pour un nom de fichier spécifique. Je n'ai pas la possibilité d'inventer des caractères génériques qui correspondent exactement à ce fichier, mais personne d'autre.

Est-ce un bug connu de Git ou moi de ne pas utiliser Git correctement?

63voto

Dave Vogt Points 3861

Git cite tout de caractères non-ascii par défaut, non seulement de l'asie. Il y a une option pour désactiver cette citant le comportement.

Vous pouvez le désactiver à l'aide de la commande suivante:

git config --global core.quotepath false

Ou, alternativement, par l'ajout de l'extrait de code suivant à votre git config (fichier$HOME/.gitconfig habituellement)

[core]
    quotepath = false

Après cela, git devrait indiquer vos noms de fichiers exactement comme ils sont.

Comme pour ton autre problème, git ne pas ajouter un fichier avec des caractères asiatiques, je ne peux que deviner que cela a à voir avec le codage que git utilise n'est pas le même que le codage de votre terminal utilise. J'espère que quelqu'un d'autre peut faire le saut et à expliquer que peu.

-4voto

Tout ce que vous devez faire est d'implémenter l'interface IGit à l'aide de votre classe de référentiel personnalisée (assurez-vous que chaque méthode est marquée comme virtuelle), puis convertissez cette implémentation d'interface contre le tas de cohésion modulaire GitX. Je l'ai déjà fait et cela a résolu mon problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X