Estoy usando Ubuntu 13.10 x64, y estoy trabajando en un proyecto en el que algunos desarrolladores están usando Windows, recientemente cambié la configuración de git core.eol
a "lf" y core.autocrlf
a "input" y core.safecrlf
a "true". Desde entonces, cuando intento enviar un archivo a mi repositorio local, aparece este error: por
fatal: CRLF would be replaced by LF in ......
lo que entiendo, si configuro core.eol
"lf" y core.autocrlf
"input", git convertirá automáticamente CRLF a LF, pero ¿por qué aparece este error? ¿afuera? ¿Como puedo solucionar este problema?
Gracias.
git diff
salida: git.661346.n2.nabble.com/...core.autocrlf
para ingresar?git config core.eol
a"lf
"yacore.autocrlf
"input
"": eso no cambia los archivos que ya están allí. Eso tendría un impacto en el futurogit pull
. Los archivos actuales todavía están en CRLF y, si se modifican, se convierten a LF si es posible y, de lo contrario, se activa el mensaje de error que menciona.Tuve el mismo problema y probé la solución sugerida sin éxito.
Tuve que ejecutar un segundo comando para que funcionara:
fuente
fuente
git diff
veo todo mi archivo (1000 líneas) como un conflicto. Las herramientas de diferencias solo ven 3 cambios de línea.Uno puede simplemente probar dos2unix:
fuente
Esto me sucedió en miles de archivos. Así que escribí un script bash rápido para
dos2unix
arreglarlo por mí. Alguien más en Linux o Mac podría encontrarlo útil.Básicamente, intenta hacerlo
git add .
. Si el comando falla, toma el nombre del archivo incompatible de la salida del error. Luego se ejecutados2unix
en ese archivo. Sigue repitiendo este proceso hasta quegit add .
funciona.Si ejecuta esto, debería ver
dos2unix: converting file xxx to Unix format...
repetidamente. Si no lo hace, no funciona, así que presione ctrl+ co command+ cpara detenerlo.fuente
Debe agregar todos los archivos que se
git status
muestran como modificados:Y luego confirma tus cambios:
Esto mantendrá sus archivos locales como están, pero estarán
autocrlf
en el repositorio remoto.fuente
Enfrenté el mismo problema y lo arreglé con la edición
.gitattributes
como se muestra a continuación.comentar 2 líneas en .gitattributes
fuente
Para su información, no estoy seguro de si esto se aplica a usted, pero recibí este error al intentar agregar accidentalmente todos
node_modules
los cambios por etapas. Así que en realidad.gitignoring
elnode_modules
resuelto mi problema.fuente
Estoy en una Mac usando Terminal y tuve este problema con un archivo .htaccess que estaba tratando de confirmar, obteniendo el error fatal:
Quería solucionar el problema, como las solicitudes de OP, no solo desactivar un indicador de git, así que encontré este artículo que proporciona un comando de perl para solucionar el problema por archivo.
Entonces, para mi error .htaccess anterior, ejecuté lo siguiente:
Los indicadores -p, -i y -e (pie) se pueden combinar para permitirle editar archivos usando Perl desde la línea de comando. En este caso reemplazando todo \ r \ n encontrado con \ n.
fuente