En este documento, analizaremos en profundidad el comando git config
. Discutimos brevemente git config
uso en nuestra página Configuración de un repositorio. El comando git config
es una función de conveniencia que se usa para establecer valores de configuración de Git en un proyecto global o local nivel. Estos niveles de configuración corresponden a .gitconfig
archivos de texto. Al ejecutar git config
se modificará un archivo de texto de configuración. Abordaremos los ajustes de configuración como correo electrónico, nombre de usuario y editor. Analizaremos los alias de Git, que le permiten crear accesos directos para las operaciones de Git de uso frecuente. Familiarizarse con git config
y las distintas opciones de configuración de Git le ayudarán a crear un flujo de trabajo de Git potente y personalizado .
Uso
El caso de uso más básico para git config
es invocarlo con un nombre de configuración, que mostrará el valor establecido en ese nombre. Los nombres de configuración son cadenas delimitadas por puntos compuestas por una «sección» y una «clave» según su jerarquía. Por ejemplo: user.email
En este ejemplo, el correo electrónico es una propiedad secundaria del bloque de configuración del usuario. Esto devolverá la dirección de correo electrónico configurada, si la hubiera, que Git asociará con las confirmaciones creadas localmente.
archivos y niveles de configuración de git
Antes de discutir más a fondo el uso de git config
, tomemos un momento para cubrir los niveles de configuración. El comando git config
puede aceptar argumentos para especificar en qué nivel de configuración operar. Los siguientes niveles de configuración están disponibles:
-
--local
De forma predeterminada, git config
escribirá a nivel local si no se pasa ninguna opción de configuración. La configuración de nivel local se aplica al repositorio de contexto git config
se invoca. Los valores de configuración local se almacenan en un archivo que se puede encontrar en el directorio repo «s .git: .git/config
-
--global
La configuración de nivel global es usuario- específico, lo que significa que se aplica a un usuario del sistema operativo. Los valores de configuración global se almacenan en un archivo que se encuentra en el directorio de inicio de un usuario. ~ /.gitconfig
en sistemas Unix y C:\Users\\.gitconfig
en Windows
-
--system
La configuración a nivel de sistema se aplica a toda una máquina. Esto cubre a todos los usuarios de un sistema operativo y todos los repositorios. El archivo de configuración a nivel del 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 puede encontrar en C:\Documents and Settings\All Users\Application Data\Git\config
en Windows XP y en C:\ProgramData\Git\config
en Windows Vista y versiones posteriores.
Por tanto, el orden de prioridad para los niveles de configuración es: local, global, sistema. Esto significa que al buscar un valor de configuración, Git comenzará en el nivel local y subirá al nivel del sistema.
Escribiendo un valor
Ampliando lo que ya sabemos acerca de git config
, veamos un ejemplo en el que escribimos un valor:
Este ejemplo escribe el valor para el nombre de configuración
user.email
. Utiliza la marca --global
por lo que este valor está configurado para el usuario actual del sistema operativo.
git config editor – core.editor
Muchos comandos de Git iniciarán un editor de texto para solicitar más información. Uno de los usos más comunes casos para git config
está configurando qué editor debe usar Git. A continuación se muestra una tabla de editores populares y comandos git config
coincidentes:
Herramientas de fusión
En caso de un conflicto de fusión, Git lanzará una «herramienta de fusión». De forma predeterminada, Git usa una implementación interna o f el programa diff común de Unix. La diferencia interna de Git es un visor de conflictos de combinación mínima. Hay muchas resoluciones de conflictos de fusión de terceros externos que se pueden utilizar en su lugar. Para obtener una descripción general de varias herramientas de combinación y configuración, consulte nuestra guía sobre consejos y herramientas para resolver conflictos con Git.
Salidas de color
Git admite la salida de terminal de color que ayuda a leer rápidamente la salida de Git. Puede personalizar su salida de Git para usar un tema de color personalizado. El comando git config
se usa para establecer estos valores de color.
color.ui
Esta es la variable maestra para los colores de Git. Establecerlo en falso deshabilitará todas las salidas de terminales de color de Git.
De forma predeterminada, color.ui
está configurado en automático, lo que aplicará colores al flujo de salida del terminal inmediato.La configuración automática omitirá la salida del código de color si el flujo de salida se redirige a un archivo o se canaliza a otro proceso.
Puede establecer el valor color.ui
en siempre cuál también aplicará la salida de código de color al redirigir el flujo de salida a archivos o conductos. Esto puede causar problemas involuntariamente ya que es posible que la tubería receptora no espere una entrada codificada por colores.
Valores de color de Git
Además de color.ui
, hay muchas otras configuraciones de color granulares. Al igual que color.ui
, estas configuraciones de color se pueden establecer en falso, automático o siempre. Estas configuraciones de color también pueden tener un valor de color específico establecido. Algunos ejemplos de valores de color admitidos son:
- normal
- negro
- rojo
- verde
- amarillo
- azul
- magenta
- cian
- blanco
Los colores también se pueden especificar como códigos de color hexadecimales como # ff0000, o valores de color ANSI 256 si su terminal lo admite.
Configuración de color de Git
color.branch
- Configura el color de salida del comando de rama de Git
color.branch.
slot >
- Este valor también es aplicable a la salida de la rama Git. slot > es uno de los siguientes:
- 1. actual: la rama actual
- 2. local: una sucursal local
- 3. remoto: una referencia de rama remota en refs / remotes
- 4. aguas arriba: una rama de seguimiento aguas arriba
- 5. simple: cualquier otra referencia
color.diff
- Aplica colores a
git diff
,git log
ygit show
salida
color.diff
.slot >
- Configuración de una ranura > valor debajo de
color.diff
le dice a git en qué parte del parche usar un color específico.- 1. contexto: el texto de contexto del diff. El contexto de Git son las líneas de contenido de texto que se muestran en una diferencia o parche que resalta los cambios.
- 2. simple: sinónimo de contexto
- 3. meta: aplica color a la metainformación del diff
- 4. frag: aplica color al «encabezado del trozo» o la «función en el encabezado del trozo»
- 5. antiguo: aplica un color a las líneas eliminadas en la diferencia
- 6. nuevo: colorea las líneas agregadas del diff
- 7. commit: los colores confirman los encabezados dentro del diff
- 8. espacio en blanco: establece un color para cualquier error de espacio en blanco en una diferencia
color.decorate.
ranura >
- Personalice el color de la salida
git log --decorate
. Los valores de > del espacio admitido son:branch
,remoteBranch
,tag
,stash
oHEAD
. Son aplicables respectivamente a sucursales locales, sucursales de seguimiento remoto, etiquetas, cambios ocultos yHEAD
.
color.grep
- Aplica color a la salida de git grep.
color.grep.
slot >
- También aplicable a git grep. La variable slot > especifica qué parte de la salida de grep aplicar color.
- 1. contexto: texto no coincidente en líneas de contexto
- 2. nombre de archivo: prefijo del nombre de archivo
- 3. función: líneas de nombre de función
- 4. número de lino: prefijo del número de línea
- 5. coincidencia: texto coincidente
- 6. matchContext: texto coincidente en líneas de contexto
- 7. matchSelected: texto coincidente en líneas seleccionadas
- 8. seleccionado: texto que no coincide en las líneas seleccionadas
- 9. separador: separadores entre campos en una línea (:, – y =) y entre trozos (-)
8. color.interactive
- Esta variable aplica color a las indicaciones y pantallas interactivas. Algunos ejemplos son
git add --interactive
ygit clean --interactive
9. color.interactive.slot >
- La variable slot > se puede especificar para orientar más específicos » salida interactiva «. Los valores disponibles del espacio > son: indicador, encabezado, ayuda, error; y cada acto sobre la salida interactiva correspondiente.
color.pager
- Habilita o deshabilita la salida en color cuando el buscapersonas está en uso
color.showBranch
- Habilita o deshabilita la salida de color para el comando git show branch
12. color.status
- Un valor booleano que habilita o deshabilita la salida de color para el estado de Git
13. color.status.slot
>
Se utiliza para especificar un color personalizado para los elementos de estado de git especificados. slot > admite los siguientes valores:
- 1.header
- Orienta el texto del encabezado del área de estado
- 2. agregado o actualizado
- Ambos archivos de destino que se agregaron pero no se confirmaron
-
3. changed
- Se dirige a archivos que se modifican pero no se agregan al índice de git
- 4. sin seguimiento
- Se dirige a archivos que no son rastreados por Git
- 5. branch
- Aplica color a la rama actual
- 6. nobranch
- El color de la advertencia «sin rama» se muestra en
- 7. sin fusionar
- Archivos de colores que tienen cambios sin fusionar
Alias
Es posible que esté familiarizado con el concepto de alias de la línea de comandos de su sistema operativo; si no, son accesos directos personalizados que definen qué comando se expandirá a comandos más largos o combinados. Los alias le ahorran el tiempo y el costo de energía de escribir comandos de uso frecuente. Git proporciona 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 puede usar el comando git config
para configurar los alias.
Este ejemplo crea un alias ci para el comando git commit
. Luego, puede invocar git commit
ejecutando git ci
. Los alias también pueden hacer referencia a otros alias para crear poderosos combos.
Este ejemplo crea una modificación de alias que compone el ci alias en un nuevo alias que usa --amend flag
.
Formateo de & espacios en blanco
Git tiene varias funciones de «espacios en blanco» que se pueden configurar para resaltar los espacios en blanco problemas al usar git diff. Los problemas de espacios en blanco se resaltarán con el color configurado color.diff.whitespace
Las siguientes funciones están habilitadas de forma 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 sangrar una línea -
blank-at-eof
resalta las líneas en blanco insertadas al final de un archivo
Las siguientes funciones están deshabilitadas de forma predeterminada
-
indent-with-non-tab
resalta una línea que tiene sangría con espacios en lugar de tabulaciones -
tab-in-indent
resalta una sangría de tabulación inicial como un error -
trailing-space
es una abreviatura de blank-at-eol y blank-at-eof -
cr-at-eol highlights
un retorno de carro al final de las líneas -
tabwidth=
define cuántas posiciones de caracteres ocupa una pestaña. El valor predeterminado es 8. Los valores permitidos son 1-63
Resumen
En este artículo, cubrimos el uso de git config command
. Discutimos cómo el comando es un método convincente para editar archivos git config
sin procesar en el sistema de archivos. Analizamos las operaciones básicas de lectura y escritura para las opciones de configuración. Echamos un vistazo a los patrones de configuración comunes:
- Cómo configurar el editor de Git
- Cómo anular 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 atajo para editar git config
archivos en el disco. Cubrimos en profundidad las opciones de personalización personal. El conocimiento básico de las opciones de configuración de git es un requisito previo para configurar un repositorio. Consulte nuestra guía allí para obtener una demostración de los conceptos básicos.