Close

git config

En este documento, analizaremos en detalle el comando git config. Ya hemos explicado brevemente cómo usar git config en nuestra página Configuración de un repositorio. El comando git config es una función útil que sirve para definir valores de configuración de Git a nivel de un proyecto global o local. Estos niveles de configuración se corresponden con archivos de texto .gitconfig. Al ejecutar git config, se modificará un archivo de texto de configuración. Analizaremos los ajustes de configuración comunes como, por ejemplo, el correo electrónico, el nombre de usuario y el editor. Explicaremos los alias de Git, que te permiten crear atajos para las operaciones de Git utilizadas con frecuencia. Familiarizarte con git config y los diversos ajustes de configuración de Git te ayudará a crear un flujo de trabajo de Git potente y personalizado.


Uso


El caso práctico más básico de git config es invocarlo con un nombre de configuración, que mostrará el valor definido con ese nombre. Los nombres de configuración son cadenas delimitadas por puntos que se componen de una "sección" y una "clave" en función de su jerarquía. Por ejemplo: user.email.

git config user.email

En este ejemplo, "email" es una propiedad secundaria del bloque de configuración del usuario. Devolverá la dirección de correo electrónico configurada, si la hay, que Git asociará con las confirmaciones creadas localmente.

Niveles y archivos de git config

Antes de analizar en más detalle el uso de git config, vamos a pararnos un momento a hablar de los niveles de configuración. El comando git config puede aceptar argumentos para especificar en qué nivel de configuración debe operar. Dispones de los siguientes niveles de configuración:

rama de git
Material relacionado

rama de git

Logotipo de Bitbucket
VER LA SOLUCIÓN

Aprende a usar Git con Bitbucket Cloud

  • --local

De manera predeterminada, git config escribirá en un nivel local si no se pasa ninguna opción de configuración. La configuración de nivel local se aplica al repositorio de contexto en el que se invoca git config. Los valores de configuración locales se almacenan en un archivo que se puede encontrar en el directorio .git del repositorio: .git/config

  • --global

La configuración de nivel global es específica del usuario, lo que significa que se aplica al usuario de un sistema operativo. Los valores de configuración globales se almacenan en un archivo que se encuentra en el directorio principal de un usuario. ~ /.gitconfig en sistemas unix y C:\Usuarios\\.gitconfig en Windows.

  • --system

La configuración de nivel de sistema se aplica a toda una máquina. Afecta a todos los usuarios de un sistema operativo y a todos los repositorios. El archivo de configuración de nivel de sistema se encuentra en un archivo gitconfig fuera de la ruta raíz del sistema. $(prefix)/etc/gitconfig en sistemas Unix. En Windows, este archivo se encuentra en C:\Documents and Settings\Todos los usuarios\Datos de programa\Git\config en Windows XP, y en C:\ProgramData\Git\config en Windows Vista y las versiones más recientes.

Por lo tanto, el nivel de prioridad para los niveles de configuración es el siguiente: local, global y sistema. Esto significa que, cuando se busque un valor de configuración, Git empezará en el nivel local e irá subiendo hasta el nivel de sistema.

Escritura de un valor

Para ampliar lo que ya sabemos de git config, vamos a examinar un ejemplo en el que escribimos un valor:

git config --global user.email "your_email@example.com"

Este ejemplo escribe el valor your_email@example.com en el nombre de configuración user.email. La marca --global la usa para que se defina este valor para el usuario actual del sistema operativo.

Editor de git config: core.editor


Muchos comandos de Git lanzarán un editor de texto para solicitar más información. Uno de los casos prácticos más comunes de git config es configurar qué editor debería usar Git. A continuación, encontrarás una tabla de editores populares y los comandos de git config correspondientes:

Redactor

Comando config

Atom

Comando config

~ git config --global core.editor "atom --wait"~

emacs

Comando config

~ git config --global core.editor "emacs"~

nano

Comando config

~ git config --global core.editor "nano -w"~

vim

Comando config

~ git config --global core.editor "vim"~

Sublime Text (Mac)

Comando config

~ git config --global core.editor "subl -n -w"~

Sublime Text (Win, instalación de 32 bits)

Comando config

~ git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"~

Sublime Text (Win, instalación de 64 bits)

Comando config

~ git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w"~

Textmate

Comando config

~ git config --global core.editor "mate -w"~

Herramientas de fusión


En el caso de un conflicto de fusión, Git lanzará una "herramienta de fusión". De manera predeterminada, Git utiliza una implementación interna del programa de diferencias común de Unix. El programa de diferencias interno de Git es un visor de conflictos de fusión mínimos. En su lugar, se pueden utilizar muchas herramientas externas de terceros para resolver conflictos de fusión. Para ver un resumen de las diversas herramientas de fusión y configuración, consulta nuestra guía sobre consejos y herramientas para resolver conflictos con Git.

git config --global merge.tool kdiff3

Resultados coloreados


Git soporta resultados coloreados en el terminal, lo que ayuda a leer rápidamente los resultados de Git. Puedes personalizar tus resultados de Git para usar un tema de colores personalizado. Para definir estos valores de colores., se utiliza el comando git config.

color.ui

Esta es la variable maestra para los colores de Git. Si se define como "false", se desactivarán todos los resultados coloreados en la terminal de Git.

$ git config --global color.ui false

De manera predeterminada, color.ui se define como "auto", lo que aplicará colores al flujo de salida del terminal inmediato. La configuración "auto" omitirá el resultado de código de colores si el flujo de salida se redirige a un archivo o se canaliza a otro proceso.

Puedes definir el valor color.ui en "always", lo que aplicará también el resultado de código de colores cuando se redirija el flujo de salida a los archivos o los canales. De forma involuntaria, esto puede provocar problemas, ya que el canal receptor podría no estar esperando información codificada por colores.

Valores de color de Git

Además de color.ui, hay muchas otras configuraciones de color detalladas. Al igual que color.ui, estas configuraciones de color se pueden definir como "false", "auto" o "always". Estas configuraciones de color también pueden tener definido un valor de color específico. Algunos ejemplos de valores de color admitidos son los siguientes:

  • normal
  • black
  • rojo
  • green
  • yellow
  • blue
  • magenta
  • cyan
  • white

Además, los colores se pueden especificar como códigos de colores hexadecimales como, por ejemplo, #ff0000 o valores de color ANSI 256 si tu terminal lo soporta.

Ajustes de configuración de color de Git

1. color.branch

  • Configura el color de resultado del comando de la rama de Git

2. color.branch.<slot>

  • Este valor también se aplica al resultado de la rama de Git. <slot> es uno de los siguientes:
    • 1. current: la rama actual
    • 2. local: una rama local
    • 3. remote: una referencia de rama remota en referencias o controles remotos
    • 4. upstream: una rama de seguimiento de nivel superior
    • 5. plain: cualquier otra referencia

3. color.diff

  • Aplica colores al resultado de git diff, git log y git show

4. color.diff.<slot>

  • Al configurar un valor de <slot> en color.diff, se indica a git en qué parte del parche se desea usar un color específico.
    • 1. context: el texto de contexto de la comparación de código. El contexto de Git consiste en las líneas de contenido de texto que se muestran en una comparación de código o parche que destaca los cambios.
    • 2. plain: un sinónimo de contexto
    • 3. meta: aplica color a los metadatos de la comparación de código
    • 4. frag: aplica color al "encabezado del hunk" o la "función del encabezado del hunk"
    • 5. old: aplica color a las líneas eliminadas de la comparación de código
    • 6. new: colorea las líneas añadidas a la comparación de código
    • 7. commit: colorea los encabezados de las confirmaciones en la comparación de código
    • 8. whitespace: define un color para los errores de espacio en blanco de una diferencia

5. color.decorate.<slot>

  • Personaliza el color del resultado de git log --decorate. Los valores de <slot> admitidos son los siguientes: branch, remoteBranch, tag, stash o HEAD. Se pueden aplicar, respectivamente, a las ramas locales, las ramas de seguimiento remoto, las etiquetas, los cambios en stash y HEAD.

6. color.grep.

  • Aplica color al resultado de git grep.

7. color.grep. <slot>

  • También puede aplicarse a git grep. La variable <slot> especifica en qué parte del resultado grep se va a aplicar color.
    • 1. context: texto no coincidente en líneas de contexto
    • 2. filename: prefijo del nombre de archivo
    • 3. function: líneas del nombre de la función
    • 4. linenumber: prefijo del número de línea
    • 5. match: texto coincidente
    • 6. matchContext: texto coincidente en las líneas de contexto
    • 7. matchSelected: texto coincidente en las líneas seleccionadas
    • 8. selected: texto no coincidente en las líneas seleccionadas
    • 9. separator: separador entre campos de una línea (:, - y =) y entre hunks (--)

8. color.interactive

  • Esta variable aplica color a las solicitudes y visualizaciones interactivas. git add --interactive y git clean --interactive son ejemplos de esto.

9. color.interactive.<slot>

  • La variable <slot> se puede especificar para que el "resultado interactivo" objetivo resulte más específico. Los valores <slot> disponibles son los siguientes: prompt, header, help y error; y cada uno actúa sobre el resultado interactivo correspondiente.

10. color.pager

  • Habilita o deshabilita el resultado con color mientras se está usando el localizador

11. color.showBranch

  • Habilita o deshabilita el resultado con color del comando de rama git show

12. color.status

  • Un valor booleano que habilita o deshabilita el resultado con color del estado de Git

13. color.status.<slot>

Se utiliza para especificar un color personalizado para los elementos del estado de git especificado. <slot> admite los siguientes valores:

1. header

  • Se dirige al texto del encabezado del área de estado.

2. added or updated

  • Ambos archivos objetivo que se añaden, pero no se confirman.

3. changed

  • Los archivos objetivo que se modifican, pero no se añaden al índice de git.

4. untracked

  • Se dirige a los archivos de los que Git no realiza un seguimiento.

5. branch

  • Aplica color a la rama actual.

6. nobranch

  • El color en el que se muestra la advertencia "no branch".

7. unmerged

  • Colorea los archivos que tienen cambios sin fusionar.

Alias


Puede que te suene el concepto de los alias de la línea de comandos de tu sistema operativo; en caso contrario, son atajos personalizados que definen qué comando se expandirá a comandos más largos o combinados. Gracias a los alias, te ahorras el tiempo y el esfuerzo de escribir los comandos que se utilizan habitualmente. Git ofrece su propio sistema de alias. Un caso de uso común para los alias de Git es acortar el comando de confirmación. Los alias de Git se almacenan en archivos de configuración de Git. Esto significa que puedes usar el comando git config para configurar alias.

git config --global alias.ci commit

Este ejemplo crea un alias ci para el comando git commit. Entonces, puedes invocar git commit ejecutando git ci. Los alias también pueden hacer referencia a otros alias para crear combinaciones muy potentes.

git config --global alias.amend ci --amend

Este ejemplo crea una modificación de alias que compone el alias ci en un nuevo alias que utiliza la marca --amend.

Formato y espacio en blanco


Git tiene varias funciones de "espacio en blanco" que pueden configurarse para resaltar los problemas de espacios en blanco cuando se usa el comando git diff. Los problemas de espacios en blanco se resaltarán utilizando el color configurado color.diff.whitespace.

Las siguientes funciones están activadas de manera predeterminada:

  • blank-at-eol resalta los espacios en blanco huérfanos al final de las líneas.
  • space-before-tab resalta un carácter de espacio que aparece antes de un carácter de tabulación al aplicar una sangría a una línea.
  • blank-at-eof resalta líneas en blanco introducidas al final del archivo.

Las siguientes funciones están desactivadas de manera predeterminada:

  • indent-with-non-tab resalta una línea con una sangría con espacios en vez de tabulaciones.
  • tab-in-indent resalta una sangría con tabulación inicial como error.
  • trailing-space es la función abreviada para blank-at-eol y blank-at-eof.
  • cr-at-eol resalta un retorno de carro en los finales de línea.
  • tabwidth= define cuántas posiciones de caracteres ocupa una tabulación. El valor predeterminado es 8. Los valores permitidos son 1-63.

Resumen


En este artículo, hemos analizado el uso del comando git config. Hemos explicado cómo el comando es un método práctico para editar archivos de git config sin procesar en el sistema de archivos. Hemos visto operaciones básicas de lectura y escritura para las opciones de configuración. Hemos echado un vistazo a los patrones de configuración comunes:

  • Cómo configurar el editor de Git
  • Cómo sobrescribir los niveles de configuración
  • Cómo restablecer los valores predeterminados de configuración
  • Cómo personalizar los colores de Git

En general, git config es una herramienta auxiliar que proporciona un acceso rápido para editar archivos git config sin procesar en el disco. Se han tratado en profundidad las opciones de personalización. Es necesario tener conocimientos básicos sobre las opciones de configuración de git si se desea configurar un repositorio. Consulta nuestra guía y observa una demostración de los aspectos básicos en ella.


Compartir este artículo
Tema siguiente

Lecturas recomendadas

Consulta estos recursos para conocer los tipos de equipos de DevOps o para estar al tanto de las novedades sobre DevOps en Atlassian.

Gente que colabora utilizando un muro lleno de herramientas

Blog de Bitbucket

Ilustración de Devops

Ruta de aprendizaje de DevOps

Demostraciones de funciones con expertos de Atlassian del Centro de demostraciones

Cómo funciona Bitbucket Cloud con Atlassian Open DevOps

Suscríbete para recibir el boletín de DevOps

Thank you for signing up