tipos tag remove practices etiquetas crear best git newline gitattributes core.autocrlf

remove - git tag best practices



¿Cómo deshabilitar Git fin de línea(CRLF a LF) en todos los clones/máquinas? (1)

La mejor manera de evitar tener que establecer core.autocrlf separado en cada equipo parece ser comprobar un archivo .gitattributes en el repositorio que contiene la línea única

* -text

O, si tiene una versión anterior de Git, entonces

* -crlf

Esto le dice a Git que, para todas las rutas (por lo tanto, * ), no se debe intentar la normalización al final de la línea. Por lo que puedo decir, esto no debería tener ningún otro efecto secundario. En particular, no debe alterar cómo se generan las diferencias (esto tiene un atributo diff / -diff por -diff ) o cómo se manejan las fusiones (esto tiene una merge atributos separada / -merge ).

Para más detalles, sugiero estos recursos:

  1. La documentación de gitattributes ( git help attributes o una copia en línea ), que describe en detalle cómo funciona la normalización de final de línea y los efectos particulares de diferentes atributos. (Probablemente los más relevantes sean text , crlf , diff , merge y binary )
  2. Subproceso de la lista de distribución de Git ¿El atributo de "texto" está destinado solo a especificar el comportamiento de normalización al final de la línea, o tiene implicaciones más amplias? (30 de marzo de 2012), que amplía el significado de diferentes atributos, y aclara que "el -text no significa simplemente" este es un archivo binario ".

Como se puede deducir from other posts , la normalización de fin de línea de Git tiene sus pros y sus contras. Tengo un proyecto particular de Windows en el que creo que lo mejor es inhabilitar por completo la normalización de fin de línea. Es decir, quiero dejar todas las líneas nuevas (la mayoría de las cuales son CRLF ) intactas, en lugar de hacer que git las normalice a LF detrás de las escenas, y quiero que ese cambio afecte a todos los clones del repositorio en todas las máquinas. La pregunta es la forma más efectiva de hacerlo.

La mayoría de las discusiones sobre la normalización de fin de línea de Git están en términos de core.autocrlf , y podría lograr mi objetivo estableciendo core.autocrlf=false . Sin embargo, esta es una configuración de git-config, y creo que hay que configurarla por separado en cada máquina por máquina. Si es verdadero, eso parece propenso a errores, especialmente dado que el instalador msysgit guía a uno a establecer core.autocrlf=true .