Saltar al contenido

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.

gitconfig

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):

  1. --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

bash
(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
  1. --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

bash
~/.gitconfig - on Unix systems
C:\Users\<username>\.gitconfig - on Windows
  1. --local – Cuando no se pasa ninguna opción de configuración, git config escribe de forma predeterminada en el nivel local. El directorio .git del repositorio contiene un archivo que almacena los valores de configuración locales.

nivel local de git config

bash
.git/config

Nota: 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

bash
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

bash
git config user.email

Aquí, 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:

EditorConfig Command
Atomgit config --global core.editor "atom --wait"
emacsgit config --global core.editor "emacs"
nanogit config --global core.editor "nano -w"
vimgit 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"
Textmategit 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

bash
git config --global color.ui false

La 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.branchConfigura 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.diffDa 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.grepDa 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.interactiveDa 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.pagerHabilita o deshabilita la salida en color cuando se usa el paginador.
color.showBranchHabilita o deshabilita la salida en color para el comando git show branch.
color.statusHabilita 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

bash
git config --global alias.ci commit

Los alias pueden crear combinaciones muy potentes con otros alias.

alias de git config

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

En el ejemplo anterior, un alias amend compone el alias ci en un nuevo alias que usa --amend

Formato y espacios en blanco

FeatureDescriptionGit Config Command
indent-with-non-tabResalta 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-indentResalta una tabulación inicial de sangría como error.(Combinado con otras reglas)
blank-at-eofResalta las líneas en blanco insertadas al final de un archivo.(Combinado con otras reglas)
trailing-spaceResalta los espacios en blanco finales.(Combinado con otras reglas)
cr-at-eolResalta 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?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.