Frecuentemente publicamos actualizaciones de nuestra documentación. Es posible que la traducción de esta página esté en curso. Para conocer la información más actual, visita la documentación en inglés. Si existe un problema con las traducciones en esta página, por favor infórmanos.
Versión del artículo: Enterprise Server 2.15

Esta versión de GitHub Enterprise se discontinuará el Esta versión de GitHub Enterprise se discontinuó el 2019-10-16. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Configurar Git para manejar finales de línea

Para evitar problemas en tus diferencias, puedes configurar Git para manejar correctamente los finales de línea.

Cada vez que presiones return en tu teclado estarás insertando un carácter invisible denominado fin de línea. Históricamente, los diferentes sistemas operativos han manejado los finales de línea de manera diferente.

Al visualizar cambios en un archivo, Git maneja los finales de línea a su manera. Dado que estás colaborando en proyectos con Git y GitHub Enterprise, Git puede producir resultados inesperados si, por ejemplo, estás trabajando en una máquina con Windows y tu colaborador ha realizado un cambio en OS X.

Parámetros globales para finales de línea

El comando git config core.autocrlf se usa para cambiar el modo en que Git maneja los finales de línea. Toma un solo argumento.

En OS X, simplemente escribes input en la configuración. Por ejemplo:

$ git config --global core.autocrlf input
# Configura Git en OS X para manejar correctamente los finales de línea

En Windows, simplemente escribes true en la configuración. Por ejemplo:

$ git config --global core.autocrlf input
# Configura Git en Windows para manejar correctamente los finales de línea

En Linux, simplemente escribes input en la configuración. Por ejemplo:

$ git config --global core.autocrlf input
# Configura Git en Linux para manejar correctamente los finales de línea

En OS X y Linux, habitualmente escribes input para este parámetro. En Windows, habitualmente deseas usar true. Por ejemplo:

$ git config --global core.autocrlf input
# Configura Git en OS X o Linux para manejar correctamente los finales de línea

$ git config --global core.autocrlf true
# Configura Git oen Windows para manejar correctamente los finales de línea

Parámetros por repositorio

Opcionalmente, puedes configurar el modo en que Git maneja los finales de línea por repositorio al configurar un archivo especial .gitattributes. Este archivo está confirmado en el repositorio y sobrescribe un parámetro core.autocrlf del individuo, garantizando el comportamiento uniforme para todos los usuarios, independientemente de sus parámetros de Git. La ventaja de un archivo .gitattributes es que las configuraciones de la línea están asociadas con tu repositorio. No debes preocuparte por si los colaboradores tienen los mismos parámetros de fin de línea que tienes tú.

El archivo .gitattributes debe crearse en la raíz del repositorio y confirmarse como cualquier otro archivo.

Un archivo .gitattributes se asemeja a una tabla con dos columnas:

Ejemplo

Aquí hay un ejemplo de archivo .gitattributes. Puedes usarlo como una plantilla para tus repositorios:

# Esteblece el comportamiento predeterminado, en caso de que las personas no tengan configurado core.autocrlf.
* text=auto

# Declara explícitamente los archivos de texto que siempre quieres que estén normalizados y convertidos
# a finales de línea nativos en el control.
*.c text
*.h text

# Declara los archivos que siempre tendrán los finales de línea CRLF en el control.
*.sln text eol=crlf

# Denota todos los archivos que son absolutamente binarios y no deberían modificarse.
*.png binary
*.jpg binary

Notarás que los archivos coinciden con --*.c, *.sln, *.png--, sepado por un espacio, luego se proporcionará un parámetro-text, text eol=crlf, binary. Luego examinaremos algunos parámetros posibles a continuación.

`text=auto`
Git manejará los archivos de la manera en que considere que sea mejor. Esta es una buena opción predeterminada.
`text eol=crlf`
Git will always convert line endings to `CRLF` on checkout. You should use this for files that must keep `CRLF` endings, even on OSX or Linux.
`text eol=lf`
Git will always convert line endings to `LF` on checkout. Deberías usar esto para los archivos que deben conservar los finales LF, incluso en Windows.
`binary`
Git comprenderá que los archivos especificados no son de texto, y no debería tratar de cambiarlos. The `binary` setting is also an alias for `-text -diff`.

Actualizar un repositorio después de los finales de línea

Una vez que has establecido la opción core.autocrlf y confirmado un archivo .gitattributes, puedes descubrir que Git desea confirmar los archivos que no has modificado. En este punto, Git está dispuesto a cambiar los finales de línea de cada archivo por ti.

The best way to automatically configure your repository's line endings is to first backup your files with Git, delete every file in your repository (except the .git directory), and then restore the files all at once.

  1. Guarda los archivos actuales en Git, de manera que nada de tu trabajo se pierda.

    $ git add . -u
    $ git commit -m "Saving files before refreshing line endings"
  2. Agrega todos los archivos cambiados nuevamente y normaliza los finales de línea.

    $ git add --renormalize
  3. Muestra los archivos reescritos, normalizados.

    $ git status
  4. Confirma los cambios en tu repositorio.

    $ git commit -m "Normalize all the line endings"

Leer más

Pregunta a una persona

¿No puedes encontrar lo que estás buscando?

Contáctanos