¿Puedo hacer que git reconozca un archivo UTF-16 como texto?
Estoy rastreando un archivo de máquina virtual de Virtual PC (*.vmc) en git y, después de realizar un cambio, git identificó el archivo como binario y no lo diferenciaba por mí. Descubrí que el archivo estaba codificado en UTF-16.
¿Se puede enseñar a git a reconocer que este archivo es texto y manejarlo adecuadamente?
Estoy usando git en Cygwin, con core.autocrlf configurado en falso. Podría usar mSysGit o git en UNIX, si fuera necesario.
He estado luchando con este problema por un tiempo y acabo de descubrir (para mí) una solución perfecta:
$ git config --global diff.tool vimdiff # or merge.tool to get merging too!
$ git difftool commit1 commit2
git difftool
toma los mismos argumentos que git diff
lo haría, pero ejecuta un programa de diferencias de su elección en lugar del GNU integrado diff
. Así que elige una diferencia multibyte (en mi caso, vim
en modo de diferencia) y úsala git difftool
en lugar de git diff
.
¿Encontraste "difftool" demasiado largo para escribir? Ningún problema:
$ git config --global alias.dt difftool
$ git dt commit1 commit2
Git rocas.
Existe una solución muy simple que funciona de inmediato en Unices.
Por ejemplo, con los archivos de Apple .strings
simplemente:
Crea un
.gitattributes
archivo en la raíz de tu repositorio con:*.strings diff=localizablestrings
Agregue lo siguiente a su
~/.gitconfig
archivo:[diff "localizablestrings"] textconv = "iconv -f utf-16 -t utf-8"
Fuente : archivos Diff .strings en Git (y publicaciones anteriores de 2010).
¿Has intentado configurarlo .gitattributes
para que lo trate como un archivo de texto?
p.ej:
*.vmc diff
Más detalles en http://www.git-scm.com/docs/gitattributes.html .