Atlassian SourceTree: ¿Cómo cambiar las terminaciones de línea a nivel mundial?

10

¿Hay alguna manera, ya sea en Atlassian SourceTree o con mi host git actual (BitBucket) para cambiar las terminaciones de línea a nivel mundial para todos mis repositorios?

Creo que actualmente están configurados para Unix (creo que hice esto por accidente) pero estoy desarrollando únicamente en Windows. Mi IDE sigue dándome mensajes de advertencia y errores sobre las terminaciones de línea mixtas en mis archivos y me gustaría solucionarlo, pero cada vez que empujo mi proyecto a la nube, vuelve a cambiar a terminaciones de Unix, por lo que incluso si cambio por lotes las terminaciones de línea se revierten de todos modos.

Scott
fuente

Respuestas:

12

Puede configurar el manejo de final de línea por repositorio agregando un archivo .gitattributes especial a la carpeta raíz de su repositorio Git. Si este archivo está confirmado en el repositorio, anula la configuración core.autocrlf del desarrollador individual.

En este archivo puede configurar Git para detectar automáticamente los finales de línea.

Nota: - No todas las herramientas gráficas de Git admiten el archivo .gitattributes, por ejemplo, el IDE de Eclipse actualmente no lo admite.

Aquí hay un ejemplo de archivo .gitattributes. Puede usarlo como plantilla para sus repositorios:

# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

Notarás que los archivos coinciden - *. C, * .sln, * .png--, separados por un espacio, luego se les da una configuración: texto, texto eol = crlf, binario. Revisaremos algunas configuraciones posibles a continuación.

text = auto Git manejará los archivos de la manera que considere mejor. Esta es una buena opción por defecto.

text eol = crlf Git siempre convertirá terminaciones de línea a CRLF al finalizar la compra. Debe usar esto para archivos que deben mantener terminaciones CRLF, incluso en OSX o Linux. Por ejemplo, aquí hay un proyecto de Windows que impone terminaciones de línea CRLF.

text eol = lf Git siempre convertirá terminaciones de línea a LF al finalizar la compra. Debe usar esto para archivos que deben mantener terminaciones LF, incluso en Windows. Por ejemplo , aquí hay un proyecto que impone terminaciones de línea LF.

binario Git comprenderá que los archivos especificados no son texto, y no debe intentar cambiarlos. La configuración binaria también es un alias para -text -diff.

gpullen
fuente
Los enlaces externos pueden dejar de estar disponibles, en cuyo caso su respuesta tendría poco valor. Incluya la información esencial en su respuesta y use el enlace para la atribución y una fuente de información adicional. Gracias.
Fixer1234
Espero que esto incluya los detalles requeridos
gpullen