Git no difiere mi file de complemento principal?

Entonces me encuentro con un problema bastante extraño. No importa qué cambio haga en un determinado file, siempre dice que hay 1 eliminación y 1 inserción, que es el código completo del file para cada uno. Esto no le sucede a los otros files. Esto solo comenzó a suceder recientemente y no estoy seguro de qué pudo haberlo causado. ¿Algunas ideas?

Explicaré más si me necesitas.

Editar: Creo que me estoy acercando un poco a descubrirlo. Si git diff , obtengo algo como esto:

<?php^M^M/*^MPlugin Name: SomeName^MPlugin URI: http://...

Así que sí, definitivamente tiene algo que ver con los finales de línea, pero ¿cómo puedo deshacerme de ellos?

Git intenta averiguar si un file es de text o binary, pero a veces recibe una respuesta incorrecta. ¿Por qué? Difícil de decir sin ver el file. Quizás tengas un personaje que no sea ascii, tal vez los finales de línea sean extraños, tal vez se haya confundido. De cualquier manera, cuando se equivoca, es hora de .gitattributes un file .gitattributes para evitar la confusión.

Si el file "principal" en cuestión se llamaba myfile.c entonces crearía un file .gitattributes como este:

 myfile.c text 

Si todos los files *.c son text, solo puede decir:

 *.c text 

Consulte http://git-scm.com/book/ch7-2.html y ¿Por qué Git trata este file de text como un file binary? y http://git-scm.com/docs/gitattributes

Bueno, resulta que no tiene nada que ver con las configuraciones en git pero con el file. Encontré esta respuesta en SE que lo arregló abriendo el file en VIM e ingresando este command:

:%s/^M/\r/g (presione CTRL+V luego CTRL+M para get ^M )