El enfoque que deberá usar depende de qué tan público sea su repositorio.
Si no te importa o te importa cambiar todos los SHA porque eres más o menos el único que lo usa pero quieres tener este problema resuelto para siempre, puedes ejecutar git filter-branch
y aplicar dos2unix
a todos archivos en cada commit. (Si comparte el repositorio, todos los demás necesitan más o menos para renovarlo por completo, así que esto es potencialmente peligroso.)
Por lo tanto, la mejor opción y también una manera más fácil sería cambiarla solo en las cabeceras actuales . Esto significa que tus commits pasados aún tienen terminaciones de \r\n
, pero a menos que estés haciendo mucho picking desde el pasado, esto no debería ser un problema. Las herramientas de diferencias pueden quejarse un poco más a menudo, por supuesto, pero normalmente solo se difieren con confirmaciones en las cercanías, por lo que este problema se resuelve a medida que se acumulan las confirmaciones.
Y los finales de línea UNIX son estándar, tiene razón al respecto. El mejor enfoque es configurar su editor para que solo escriba estos finales, incluso en Windows. De lo contrario, también hay una configuración de autocrlf
que puede usar.
Además de la historia reescribir parte:
La última vez que hice lo mismo, que utiliza el siguiente comando para cambiar todos los archivos a los finales de Unix.
#!/bin/bash
all2dos() { find * -exec dos2unix {} \; }
export -f all2dos
git filter-branch -f --tree-filter 'all2dos' --tag-name-filter cat --prune-empty -- --all
pregunta relacionado para personas interesadas en este: http://stackoverflow.com/questions/446244/are-crlf-lines-ok-in-a-rails-project-deployed-on-linux – Blixt