¿Cómo puedo tratar un file, no un binary (git)

Tengo un file llamado a.uni, y debo fusionar la solución. Pero git trata a a.uni como un file binary. Cuando fusiono la solución, siempre muestra:

Advertencia: No se pueden combinar los files binarys: error a.uni (HEAD contra 549af46 … test): no se pudo aplicar 549af46 … sugerencia de testing: después de resolver los conflictos, marque la sugerencia de los paths corregidos: con 'git add' o ' git rm 'hint: y confirma el resultado con' git commit '¿Alguien más puede ayudarme? muchas gracias.

Como su file .uni es en realidad un file de text, supongo que debe tener algún carácter NUL (consulte " ¿Cómo determinar si Git maneja un file como binary o como text? ").

Depende de cómo quiera administrar la combinación.

Como se menciona en " Dile a .gitattributes que no .gitattributes files binarys, sino que elijas ", puedes especificar un administrador de combinación en un file .gitattributes que se fusionará de acuerdo con tu política.

Al less, como en " ¿por qué git trata algunos files cpp como binarys? ", Puede intentar y especificar (aún el file .gitattributes ):

 *.uni -text crlf diff 

Para los files Unicode, al mirar " ¿Puedo hacer que git reconozca un file UTF-16 como text? ", Puede:

  • ya sea definir una herramienta de fusión o diferencia personalizada que soporte ese formatting: git config --global diff.tool vimdiff ; git difftool commit1 commit2 git config --global diff.tool vimdiff ; git difftool commit1 commit2
  • o define un atributo como: * .uni diff merge -crlf

También debes asegurarte de que:

  • tienes git1.7.10 + (que tiene mejor soporte UTF-8)
  • ha establecido la configuration de utf-8: vea " git, msysgit, acentos, utf-8, las respuestas definitivas ".

¿Cambió el tipo de encoding del file .uni (por ejemplo, UTF-8 a ANSI)? Git no parece ser capaz de comparar / fusionar files de diferentes types de encoding. Ver la respuesta que di en esta publicación .