Cómo cambiar la configuración de final de línea

Resuelto qwertymk asked hace 12 años • 8 respuestas

¿Existe algún archivo o menú que me permita cambiar la configuración sobre cómo lidiar con los finales de línea?

Leí que hay 3 opciones:

  1. Pague al estilo Windows, confirme al estilo Unix

    Git convertirá LF a CRLF al retirar archivos de texto. Al enviar archivos de texto, CRLF se convertirá a LF. Para proyectos multiplataforma, esta es la configuración recomendada en Windows ("core.autocrlf" está configurado en "true")

  2. Pague como está, confirme al estilo Unix

    Git no realizará ninguna conversión al retirar archivos de texto. Al enviar archivos de texto, CRLF se convertirá a LF. Para proyectos multiplataforma, esta es la configuración recomendada en Unix ("core.autocrlf" está configurado en "entrada").

  3. Pagar como está, confirmar como está

    Git no realizará ninguna conversión al retirar o enviar archivos de texto. No se recomienda elegir esta opción para proyectos multiplataforma ("core.autocrlf" está configurado en "false")

qwertymk avatar May 03 '12 00:05 qwertymk
Aceptado

La forma normal de controlar esto es congit config

Por ejemplo

git config --global core.autocrlf true

Para obtener más información, desplácese hacia abajo en este enlace de Pro Git a la sección denominada "core.autocrlf".


Si desea saber en qué archivo se guarda esto, puede ejecutar el comando:

git config --global --edit

y el archivo de configuración global de git debería abrirse en un editor de texto, y podrá ver desde dónde se cargó ese archivo.

CodingWithSpike avatar May 02 '2012 18:05 CodingWithSpike

Formato de final de línea utilizado en el sistema operativo:

  • Windows: par CR(retorno de carro \r) y LF(avance de línea \n)
  • OSX, Linux: LF(salto de línea \n)

Podemos configurar git para corregir automáticamente los formatos de final de línea para cada sistema operativo de dos maneras.

  1. Configuración global de Git
  2. Usando .gitattributesarchivo

configuración global

En Linux/OSX

git config --global core.autocrlf input

Esto solucionará cualquier CRLFproblema LFcuando te comprometas.

En ventanas

git config --global core.autocrlf true

Esto asegurará que, cuando realice el pago en Windows, todo LFse convierta a CRLF.

Archivo .gitattributes

Es una buena idea mantener un .gitattributesarchivo ya que no queremos esperar que todos los miembros de nuestro equipo establezcan su propia configuración. Este archivo debe colocarse en la raíz del repositorio y, si existe, git lo respetará.

* text=auto

Esto tratará todos los archivos como archivos de texto y los convertirá a la línea del sistema operativo que termina al finalizar la compra y volverá a la LFconfirmación automáticamente. Si desea especificar el final de línea explícitamente, puede utilizar:

* text eol=crlf
* text eol=lf

El primero es para pagar y el segundo es para confirmar.

*.jpg binary

Esto tratará todas .jpglas imágenes como archivos binarios, independientemente de la ruta. Entonces no es necesaria ninguna conversión.

O puedes agregar calificadores de ruta:

my_path/**/*.jpg binary
Jasnan avatar Nov 26 '2016 18:11 Jasnan

Para obtener una solución de configuración del repositorio, que se pueda redistribuir a todos los desarrolladores, consulte el atributo de texto en el archivo .gitattributes . De esta manera, los desarrolladores no tienen que configurar manualmente sus propios finales de línea en el repositorio, y debido a que diferentes repositorios pueden tener diferentes estilos de final de línea, global core.autocrlf no es el mejor, al menos en mi opinión.

Por ejemplo, desarmar este atributo en una ruta determinada [ . - text] obligará a git a no tocar los finales de línea al realizar el check-in y el check-out. En mi opinión, este es el mejor comportamiento, ya que la mayoría de los editores de texto modernos pueden manejar ambos tipos de finales de línea. Además, si usted, como desarrollador, aún desea realizar una conversión de final de línea al registrarse, aún puede configurar la ruta para que coincida con ciertos archivos o configurar el atributo eol (en .gitattributes) en su repositorio.

Consulte también esta publicación relacionada, que describe el archivo .gitattributes y el atributo de texto con más detalle: ¿ Cuál es la mejor estrategia de manejo de CRLF (retorno de carro, avance de línea) con Git?

Fazi avatar Jul 08 '2015 08:07 Fazi

El archivo .gitattributes

La forma más sencilla es utilizar un .gitattributesarchivo local en su repositorio.

También puede cambiar los finales de línea para extensiones de archivo específicas.

*           text=auto     # auto
*.txt       text
*.vcproj    text eol=crlf # windows line-endings
*.sh        text eol=lf   # linux line-endings
*.jpg       -text

Esto también anula los valores predeterminados globales, por lo que es mucho más portátil y hace que el repositorio sea más confiable en diferentes máquinas.

Ben Winding avatar Jun 30 '2021 01:06 Ben Winding