Cómo decirle a git-svn que los files NO son binarys

Estoy convirtiendo un SVN-repo grande (~ 28k Commits) en Git usando gitsvn. Cuando el process terminó (~ 1 1/2 semanas) encontré algunos files .ps1 que se tratan como binarys en los diffs. He enviado un file .gitignore en el maestro (después de la conversión del curso) que le dice a git que trate los files como text:

* -text *.snk binary *.ico binary *.chm binary and so on... 

Nota: -text solo le dice que trate las terminaciones de línea como están (no las almacena con terminaciones de línea Unix en su database)

Sin embargo, solo pude agregar los .gitattributes DESPUÉS de la conversión del curso.

El .gitattributes no funciona en Git-extensions para commit / diffs previos, pero ese podría ser otro problema del que no quiero hablar en este momento. El principal problema son los files que se almacenan binarys en git.

Leí en alguna parte que podrías almacenar un gitattributes bajo .git / INFO. Podría hacer esto antes del process de conversión, pero no lo he vuelto a intentar porque la conversión lleva más de una semana y me gustaría hacerlo bien en el primer ataque.

Así que, básicamente, mi pregunta ahora es la siguiente: con el repository convertido en mente: ¿Puedo convertir files binarys existentes en un repository git existente a files de text?

De lo contrario, ¿cómo le diría a git-svn qué files se tratarán como text / binary utilizando gitattributes para todo el procedimiento de conversión?

EDITAR: El problema no era nada en la conversión (git trata los files como binarys a propósito) pero los files se tratan como binarys por 'git diff' o extensiones de Git. (ver respuesta) Cuando se usa una herramienta diff (por ejemplo, BeyondCompare) puede trabajar con esos files. Entonces es solo un poco molesto en la historia. La conversión funcionó perfectamente ya que los files se migraron como están. (UTF-16 eso es)

El atributo binary "macro" es una abreviatura de -diff -merge -text (ver documentos de gitattributes ).

En oposition al atributo de text que influye en la conversión de finalización de línea de files entre el repository y la versión de copy de trabajo, los attributes diff y merge no influyen en la forma en que Git almacena los files. Los dos últimos attributes simplemente influyen en cómo interpreta Git el contenido del file (por ejemplo, cómo crea Git un parche / parche para un file).

Si no tiene ningún .ps1 binary explícito, o .ps1 -diff en sus .gitattributes , la razón por la cual git diff interpreta sus files .ps1 como binarys es probablemente debido a su encoding. Tenga en count que Git no es compatible con UTF-16 / UCS-2, por ejemplo.

Si este es el caso, puede crear un "controller de diff" personalizado que convierta los files a UTF-8 (como se propone en esta respuesta ).

O bien, como Windows PowerShell también puede hacer frente a los files de script UTF-8, puede convertir todos sus files .ps1 a UTF-8. (Si desea convertir files en confirmaciones existentes / migradas, puede usar git-filter-branch ).