Cómo cambiar la configuración de final de línea
¿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:
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")
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").
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")
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.
Formato de final de línea utilizado en el sistema operativo:
- Windows: par
CR
(retorno de carro\r
) yLF
(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.
- Configuración global de Git
- Usando
.gitattributes
archivo
configuración global
En Linux/OSX
git config --global core.autocrlf input
Esto solucionará cualquier CRLF
problema LF
cuando te comprometas.
En ventanas
git config --global core.autocrlf true
Esto asegurará que, cuando realice el pago en Windows, todo LF
se convierta a CRLF
.
Archivo .gitattributes
Es una buena idea mantener un .gitattributes
archivo 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 LF
confirmació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 .jpg
las 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
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?
El archivo .gitattributes
La forma más sencilla es utilizar un .gitattributes
archivo 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.