git config
Descripción
El comando git config es una utilidad de línea de comandos que establece variables de configuración. Controla la apariencia y el funcionamiento de Git.

Los niveles y archivos de git config
El comando git config acepta argumentos para especificar en qué nivel de configuración operar. Al buscar un valor de configuración, Git prioriza el siguiente orden (de menor a mayor prioridad):
--system– La configuración a nivel de sistema incluye a todos los usuarios de un sistema operativo y todos los repositorios. El archivo de configuración a nivel de sistema se encuentra en el directorio de instalación de Git.
nivel de sistema de git config
(prefix)/etc/gitconfig - on Unix systems
C:\Documents and Settings\All Users\Application Data\Git\config - Windows XP (deprecated)
C:\ProgramData\Git\config - Windows Vista and newer versions--global– La configuración a nivel global se aplica al usuario actual del sistema operativo. Los valores de configuración global se almacenan en un archivo en el directorio personal del usuario.
nivel global de git config
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows--local– Cuando no se pasa ninguna opción de configuración,git configescribe de forma predeterminada en el nivel local. El directorio.gitdel repositorio contiene un archivo que almacena los valores de configuración locales.
nivel local de git config
.git/configNota: La configuración local anula la global, y esta a su vez anula la del sistema.
Cómo escribir un valor
Aquí, el ejemplo escribe el valor "[email protected]" en el nombre de configuración user.email. Se usa el nivel global para establecer el valor para el usuario actual del sistema operativo.
git config establecer usuario
git config --global user.email "[email protected]"Uso de git config
El uso básico de git config es recuperar un valor de configuración especificando su nombre. Los nombres de configuración constan de una section y una key separadas por un punto.
git config usuario email
git config user.emailAquí, email es una propiedad secundaria del bloque de configuración user.
También puedes listar todos los ajustes activos con git config --list, eliminar un ajuste con git config --unset <key>, o abrir el archivo de configuración en tu editor predeterminado con git config --edit. Para flujos de trabajo modernos, git config --show-origin muestra dónde está definido cada ajuste, y git config --get-all <key> recupera todos los valores de una clave dada.
El editor de git config - core.editor
Cuando tu identidad está configurada, Git usa el editor predeterminado de tu sistema, que es Vi o Vim. git config configura qué editor usará Git. Aquí está la lista de los editores más comunes con comandos git config:
| Editor | Config Command |
|---|---|
| Atom | git config --global core.editor "atom --wait" |
| emacs | git config --global core.editor "emacs" |
| nano | git config --global core.editor "nano -w" |
| vim | git config --global core.editor "vim" |
| Sublime Text (Mac) | git config --global core.editor "subl -w" |
| Sublime Text (Win, 32-bit install) | git config --global core.editor "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w" |
| Sublime Text (Win, 64-bit install) | git config --global core.editor "'c:/program files/sublime text 3/sublimetext.exe' -w" |
| Textmate | git config --global core.editor "mate -w" |
Salidas en color
Git admite colores, lo que simplifica el proceso de leer la salida de Git. Puedes usar tus colores para personalizar la salida. Para establecer valores de color se usa el comando git config.
color.ui
Git colorea automáticamente la mayor parte de su salida, pero también existe una variable principal si quieres establecer otro color. Para desactivar toda la salida coloreada de Git en la terminal puedes hacer lo siguiente:
git config establecer color.ui
git config --global color.ui falseLa configuración predeterminada de color.ui es auto, que aplica colores directamente a la salida de la terminal. Omite la salida de códigos de color cuando la salida se redirige a una tubería o a un archivo.
También puedes establecer el valor de color.ui en always. Aplica la salida de códigos de color cuando la salida se redirige a archivos o tuberías. Esto puede causar problemas, ya que la tubería receptora puede no esperar una entrada con códigos de color.
Valores de color de Git
Además de color.ui, también hay otros ajustes de color que se pueden establecer en false, auto o always. Pueden tener un valor de color específico: normal, black, red, green, yellow, blue, magenta, cyan, white. Los colores pueden especificarse como códigos hexadecimales como #1c87c9 o valores de color ANSI de 256 colores si la terminal lo admite.
Ajustes de configuración de color de Git
| color.branch | Configura el color de salida del comando de rama de Git. |
|---|---|
color.branch.<slot> | Es relevante para la salida de git branch. <slot> es uno de los siguientes: 1. rama actual 2. rama local 3. rama remota 4. rama upstream 5. simple (cualquier otra referencia) |
| color.diff | Da color a la salida de git diff, git log y git show |
color.diff.<slot> | Indica a git qué parte del parche (contexto, simple, meta, frag, old, new, commit, whitespace) debe usar un color específico. |
color.decorate.<slot> | Ajusta el color para la salida de git log --decorate. Los valores admitidos de <slot> son branch, remote Branch, tag, stash o HEAD. Se aplican, respectivamente, a ramas locales, ramas de seguimiento remoto, etiquetas, cambios guardados y HEAD. |
| color.grep | Da color a la salida de git grep. |
color.grep.<slot> | Se puede aplicar a git grep. La variable <slot> especifica a qué parte de la salida de grep (contexto, nombre de archivo, función, número de línea, coincidencia, contexto de coincidencia, coincidencia seleccionada, seleccionada, separador) se debe aplicar el color. |
| color.interactive | Da color a los mensajes y pantallas interactivas (por ejemplo, git add --interactive, git clean --interactive) |
color.interactive.<slot> | Se dirige a una "salida interactiva". Los valores disponibles de <slot> son: prompt, header, help, error. |
| color.pager | Habilita o deshabilita la salida en color cuando se usa el paginador. |
| color.showBranch | Habilita o deshabilita la salida en color para el comando git show branch. |
| color.status | Habilita o deshabilita la salida en color para el estado de Git. |
color.status.<slot> | Especifica un color personalizado para los elementos definidos de git status. <slot> admite los siguientes valores: header, added or updated, changed, untracked, branch, nobranch, unmerged. |
Los alias de git config
Los alias son accesos directos personalizados que especifican qué comando se expandirá a comandos más largos o combinados. No hace falta escribir comandos de uso frecuente con alias. Git tiene su propio sistema de alias, que se usa principalmente para acortar el comando git commit. El comando git config se usa para configurar alias.
git config establecer alias
git config --global alias.ci commitLos alias pueden crear combinaciones muy potentes con otros alias.
alias de git config
git config --global alias.amend ci --amendEn el ejemplo anterior, un alias amend compone el alias ci en un nuevo alias que usa --amend
Formato y espacios en blanco
| Feature | Description | Git Config Command |
|---|---|---|
indent-with-non-tab | Resalta una línea que comienza con espacios en lugar de tabulaciones. | git config --global core.whitespace "indent-with-non-tab,tab-in-indent,blank-at-eof,-trailing-space,-cr-at-eol" |
tab-in-indent | Resalta una tabulación inicial de sangría como error. | (Combinado con otras reglas) |
blank-at-eof | Resalta las líneas en blanco insertadas al final de un archivo. | (Combinado con otras reglas) |
trailing-space | Resalta los espacios en blanco finales. | (Combinado con otras reglas) |
cr-at-eol | Resalta un retorno de carro al final de la línea. | (Combinado con otras reglas) |
tabwidth=<n> | Especifica cuántas posiciones de carácter ocupa una tabulación. El valor predeterminado es 8. Valores permitidos: 1-63. | git config --global core.whitespace "tabwidth=<n>" |
Practice
Which of the following is a correct use of the 'git config' command?