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:
Material relacionado
rama de git
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\
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 |
emacs | Comando config |
nano | Comando config |
vim | Comando config |
Sublime Text (Mac) | Comando config |
Sublime Text (Win, instalación de 32 bits) | Comando config |
Sublime Text (Win, instalación de 64 bits) | Comando config |
Textmate | Comando config |
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
ygit show
4. color.diff
.<slot
>
- Al configurar un valor de <
slot
> encolor.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
oHEAD
. Se pueden aplicar, respectivamente, a las ramas locales, las ramas de seguimiento remoto, las etiquetas, los cambios en stash yHEAD
.
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
ygit 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.