2012-08-15 9 views
11

En mi repositorio de Git, tiene archivos acentuados como éíóúàèìòùãõ_800x600.jpg, pero después de hacer clon, no puedo hacer extracción, porque el archivo aparece como modificado :Cómo manejar caracteres acentuados en nombres de archivo en Git en Mac OS X convertido a Unicode

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

Aún así, no puedo agregar, eliminar, restablecer o esconder el archivo.

me trataron:

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

Cómo manejar archivos con acentuados convierte a Unicode?

+0

Todo lo que puedo sugerir es "no utilizar HFS +", ya que almacena los caracteres acentuados de manera diferente. –

Respuesta

12

Es necesario configurar la opción core.precomposeunicode true en el Mac, y clonar el repositorio de nuevo.

git config --global core.precomposeunicode true 

Como se describe en git config man page, la opción está relacionada con la descomposición particular de caracteres Unicode en Mac OS:

Esta opción sólo es utilizado por la aplicación Mac OS de git. Cuando core.precomposeunicode = true, git revierte la descomposición unicode de los nombres de archivo hechos por Mac OS. Esto es útil cuando se comparte un repositorio entre Mac OS y Linux o Windows. (Se necesita Git para Windows 1.7.10 o superior, o git bajo cygwin 1.7). Cuando es falso, los nombres de archivo se manejan completamente transparentes por git, que es compatible con versiones anteriores de git.

Lo que la página man no indica, es que esta opción no tiene efecto retroactivo en un repositorio, solo tiene efecto en los repositorios clonados posteriormente.

Referencia: Answer by Leo Koppelkamm in "Git and the Umlaut problem on Mac OS X"