Comment gérer les caractères accentués dans les noms de fichiers en Git sur Mac OS X converti en unicode
dans mon dépôt Git, a accentué des fichiers comme éíradàèìòùãõ_800x600.jpg, mais après avoir fait le clone, je ne peux pas le faire, parce que le fichier est modifié:
$git clone [...]
done
$git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# "a41e41i41o41u41a40e40i40o40u40a43o43_800x600.jpg"
mais je ne peux pas ajouter, supprimer, réinitialiser ou stocker le fichier.
j'ai essayé:
$git add a41e41i41o41u41a40e40i40o40u40a43o43_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)
#
# "a41e41i41o41u41a40e40i40o40u40a43o43_800x600.jpg"
comment gérer les fichiers accentués convertis en unicode?
2 réponses
Vous devez configurer le noyau.précomposeunicode option à true sur le Mac, et de cloner le dépôt à nouveau.
git config --global core.precomposeunicode true
Comme décrit dans git config page de manuel de, l'option est liée à la décomposition particulière des caractères Unicode dans Mac OS:
cette option n'est utilisée que par Mac OS implementation de git. Quand le noyau.précomposeunicode=true, git inverse la décomposition unicode des noms de fichiers faite par Mac OS. C'est utile pour partager un dépôt entre Mac OS et Linux ou Windows. (Git pour Windows 1.7.10 ou plus est nécessaire, ou Git sous cygwin 1.7). Lorsqu'ils sont faux, les noms de fichiers sont traités en toute transparence par git, qui est rétrocompatible avec les versions plus anciennes de git.
ce que la page de manuel n'indique pas, c'est que cette option n'a pas d'effet rétroactif sur un dépôt, elle ne prend effet que dans les dépôts clonés par la suite.
Référence: réponse de Leo Koppelkamm dans " Git and the Problème Umlaut sur Mac OS X"