tipos tag repositorio remove remote qué que existen etiquetas crear git git-config

tag - ¿Mejores prácticas para la configuración de git multiplataforma?



qué tipos de etiquetas existen en git (3)

Creo que debería hacer que .gitconfig dependa del sistema operativo que esté usando el usuario. Los usuarios de Windows no necesitan autocrlf mientras los usuarios de Linux lo hacen. Por ejemplo, guarde los archivos de texto con crlf y haga que Git convierta los archivos automáticamente para los usuarios de Linux.

Es posible que también desee comprobar .gitattributes , que le permite definir qué archivos se convierten y cuáles no. Si tiene los archivos de configuración en un solo lugar, puede definir que la conversión solo se realice en ese directorio solo para estar seguro.

Contexto

Varios de los archivos de configuración de usuario de mi aplicación se guardan en un repositorio de git para compartirlos fácilmente en múltiples máquinas y plataformas múltiples. Entre estos archivos de configuración se encuentra .gitconfig que contiene las siguientes configuraciones para manejar los caracteres de salto de línea de retorno de carro

[core] autocrlf = true safecrlf = false

Problema

Esta configuración también se aplica en una plataforma GNU / Linux que causa errores poco claros.

Pregunta

¿Cuáles son algunas de las mejores prácticas para manejar estas diferencias específicas de la plataforma en los archivos de configuración?

Solución propuesta

Me doy cuenta de que este problema podría resolverse teniendo una rama para cada plataforma y manteniendo las cosas comunes en el maestro y fusionándose con la rama de la plataforma cuando el maestro avanza. Me pregunto si hay soluciones más fáciles para este problema.


He revisado ese tipo de configuración ( crlf ) ampliamente en la pregunta:
distribuyendo la configuración de git con el código .

La conclusión fue:

*.java +crlf *.txt +crlf ...

  • evite hacer cualquier tipo de conversión de tipos de archivos que no lo necesiten, debido a los diversos efectos secundarios de dicha conversión en fusiones, git status , entorno de shell y svn import (consulte " distribución de la configuración de git con el código " para enlaces y referencias).
  • evite cualquier conversión crlf completo si puede.

Ahora, con respecto al problema específico de la configuración por plataforma , la rama no siempre es la herramienta adecuada, especialmente para datos no relacionados con el programa (es decir, esas configuraciones no están relacionadas con lo que estás desarrollando, solo para que el VCS almacene el historial de tu desarrollo)

Como se indica en la pregunta Git: ¿Cómo mantener dos ramas de un proyecto y fusionar solo datos compartidos? :

su vida será mucho más simple si coloca el código dependiente del sistema en diferentes directorios y trata las dependencias multiplataforma en el sistema de compilación (Makefiles o lo que sea que use).

En este caso, aunque se podrían usar las ramas para el código dependiente del sistema, recomendaría un directorio para las herramientas de soporte, configuración dependiente del sistema, con un script capaz de construir el archivo .gitattributes apropiado para aplicar la configuración correcta dependiendo de la plataforma de despliegue repo.


Nunca encienda autocrlf , no causa más que dolores de cabeza y dolores.

No hay excusa para usar /r/n en Windows, todos los editores decentes (por definición) pueden manejar /n .