Intentando enviar files Git pero obteniendo :: fatal: LF sería reemplazado por CRLF en <algún file en el repository>

Cuando bash enviar algunos files modificados, aparece el siguiente post de error con TortoiseGit

fatal: LF would be replaced by CRLF in <some file in the repo>

Ahora, antes de get las respuestas habituales de LF vs CRLF , sé y entiendo de qué se trata el debate. En segundo lugar, también configuré mi configuration global para:

core.autocrlf true

En tercer lugar, tengo un file .gitattributes .

Entonces, quiero asegurarme de que los files estén forzados a tener CRLF .

Lo que no entiendo es que dice FATAL y me FATAL continuar. ¿Una advertencia? ¡Por supuesto! ¿Sé lo que bash hacer? ¡Hago!

Solo quiero que se convierta silenciosamente y STFU .

Alternativamente, si se ve forzado a BLOQUEARME, ¿hay alguna forma de que pueda actualizar todos los files del repository para que sean CRLF , por lo que esta advertencia se puede perder?

Estos repos son privados, por lo que nunca se desarrollarán fuera de Windows + Visual Studio.

¿Puede alguien por favor ayudar sin denigrar este hilo en una autocrlf TRUE vs autocrlf FALSE guerra religiosa?

Es posible que desee establecer core.safecrlf para "advertir", si solo desea una advertencia y no es un error fatal.

Desde la página de git config " git config " :

core.safecrlf

Si es verdadero, hace que git compruebe si la conversión de CRLF es reversible cuando la conversión de fin de línea está activa. Git verificará si un command modifica un file en el tree de trabajo directa o indirectamente.
Por ejemplo, si se compromete un file seguido de la extracción del mismo file, se obtendrá el file original en el tree de trabajo. Si este no es el caso para la configuration actual de core.autocrlf, git rechazará el file .
La variable se puede establecer en "warn", en cuyo caso git solo advertirá sobre una conversión irreversible pero continuará la operación.

La conversión CRLF tiene una pequeña posibilidad de corromper datos.
Cuando está habilitado, git convertirá CRLF a LF durante la confirmación y de LF a CRLF durante el process de pago.
Un file que contiene una mezcla de LF y CRLF antes del compromiso no puede ser recreado por git .
Para los files de text, esto es lo que se debe hacer: corrige los finales de línea de modo que solo tengamos terminaciones de línea LF en el repository.
Pero para los files binarys que se clasifican accidentalmente como text, la conversión puede dañar los datos .

Si reconoce ese tipo de corrupción de manera temprana, puede solucionarlo fácilmente estableciendo el tipo de conversión explícitamente en .gitattributes .
Inmediatamente después de comprometerse, aún tiene el file original en su tree de trabajo y este file aún no está dañado. Puedes decirle explícitamente a git que este file es binary y que git manejará el file de manera apropiada.

Desafortunadamente, no se puede distinguir el efecto deseado de limpiar files de text con terminaciones de línea mixtas y el efecto no deseado de corromper files binarys.
En ambos casos, los CRLF se eliminan de manera irreversible. Para los files de text, esto es lo correcto porque los CRLF son terminaciones de línea, mientras que para los files binarys, la conversión de los CRLF daña los datos.

Prefiero identificar los files exactos o los types de file que quiero forzar al eol con files .gitattributes solamente (con la configuration de core.eol , que tiene), y dejar autocrlf en falso.

En el caso de campos de text con eol mixto, esta publicación de blog sugiere, por ejemplo, que:

Si tiene Notepad ++ instalado en su computadora, simplemente siga estos pasos.

  1. Abra el file que está teniendo el problema Fatal.
  2. Haga clic en Edit -> EOL Conversion luego select Windows Format o cualquiera de los que tenga problemas para cometer.
 git config --global core.safecrlf false 

Esto desactivará la advertencia fatal crlf.

 git config core.autocrlf false git config core.safecrlf false 

git config --global core.autocrlf false files con CRLF, que no está acostumbrado.

Me he dado count en Windows, que con core.autocrlf true git no le gustan los files con LF y la core.autocrlf input no le gusta CRLF.

Por lo tanto, core.autocrlf true files CRLF con core.autocrlf true y los files LF con la core.autocrlf input (o core.autocrlf input a CRLF).

Por lo general, los files con LF son autogenerados por generadores de código (por ejemplo, https://start.spring.io o http://yeoman.io/ )

Con el file .gitattributes, use

 *.h text=auto *.cpp text=auto *.txt text=auto 

como se documenta en https://git-scm.com/docs/gitattributes .