¿Puedo hacer que git reconozca un archivo UTF-16 como texto?

Resuelto skiphoppy asked hace 15 años • 10 respuestas

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.

skiphoppy avatar Apr 22 '09 22:04 skiphoppy
Aceptado

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 difftooltoma los mismos argumentos que git difflo 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, vimen modo de diferencia) y úsala git difftoolen 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.

Sam Stokes avatar Aug 19 '2009 15:08 Sam Stokes

Existe una solución muy simple que funciona de inmediato en Unices.

Por ejemplo, con los archivos de Apple .stringssimplemente:

  1. Crea un .gitattributesarchivo en la raíz de tu repositorio con:

     *.strings diff=localizablestrings
    
  2. Agregue lo siguiente a su ~/.gitconfigarchivo:

     [diff "localizablestrings"]
     textconv = "iconv -f utf-16 -t utf-8"
    

Fuente : archivos Diff .strings en Git (y publicaciones anteriores de 2010).

IlDan avatar Jan 09 '2014 12:01 IlDan

¿Has intentado configurarlo .gitattributespara que lo trate como un archivo de texto?

p.ej:

*.vmc diff

Más detalles en http://www.git-scm.com/docs/gitattributes.html .

Chealion avatar Apr 22 '2009 16:04 Chealion