¿Cómo muestro mi configuración global de Git?

1076

Me gustaría mostrar todas las secciones configuradas de Git.

Solo encontré git config --get core.editor, y me gustaría mostrar todo lo que está configurado globalmente, no solo el editor predeterminado configurado.

wullxz
fuente
3
¿Qué hay de malo en mirar .gitconfig?
Rook
1
Tenga en cuenta que pronto (Q3 / Q4 2015) tendrá con git 2.6 la opción --name-only, para enumerar solo las claves de configuración, sin sus valores. Vea mi respuesta a continuación
VonC
41
$ git config --list Comprobando su configuración
TarranJones
55
Debe ser git config --global --listcomo se explica más profundo en aquí
prosti

Respuestas:

1723

Puedes usar:

git config --list

o mira tu ~/.gitconfigarchivo. La configuración local estará en el .git/configarchivo de su repositorio .

Utilizar:

git config --list --show-origin

para ver dónde se define esa configuración (global, usuario, repositorio, etc.)

Cameron Skinner
fuente
24
Gracias, los he votado a los dos. Yo quería saber el git config --listcomando porque puedo mirar la configuración efectiva en un repositorio y puedo ser diferentes locales de configuración, global y el sistema con el parámetro apropiado ( --global, --local, --system). Aceptaré tu respuesta lo antes posible porque fuiste unos segundos más rápido :)
wullxz
2
Tenga cuidado, hay muchas fuentes potenciales para la configuración de git. Mirar el archivo solo da una parte. La respuesta de @ linquize es correcta.
vonbrand
2
@vonbrand: --list es equivalente a -l.
Cameron Skinner
99
Las manos cortas (como -l) son útiles cuando te conviertes en un usuario avanzado y usas la función con la frecuencia suficiente, para realmente beneficiarte de escribir menos caracteres. Me resulta más fácil encontrar y recordar la --listopción larga . Para las manos cortas menos obvias, a menudo tengo que verificar qué representan, por lo que prefiero los nombres largos. Son aún más fáciles, con la finalización de comandos, cuando realmente no tiene que escribir todos los caracteres, pero aún así ve el nombre completo de la opción.
Krzysztof Jabłoński
1
¿Qué pasa si git config --listno imprime nada?
Matej J
247

El más corto,

git config -l

muestra todos los valores heredados de: sistema, global y local

linquizar
fuente
13
¿Esto difiere de git config --list , o es solo una forma más corta de escribirlo?
Magnilex
8
@Magnilex es solo una forma más corta de escribirlo
LemenDrop
3
Es posible que los archivos de configuración no siempre muestren todas las configuraciones heredadas, pero git config -llo mostrarán todo. Me salvó porque git para Windows establece autocrlfen la instalación, y no está en ningún archivo de configuración que pueda encontrar.
geneorama
sí, también hay un archivo C: \ ProgramData \ Git \ config - Creo que este es un archivo de configuración global o del sistema git
Alex
129

¿Cómo edito mi global configuración Git?

Respuesta corta: git config --edit --global


Para comprender la configuración de Git, debe saber que:

Las variables de configuración de Git se pueden almacenar en tres niveles diferentes. Cada nivel anula los valores en el nivel anterior.

1. Nivel del sistema (aplicado a cada usuario en el sistema y todos sus repositorios)

  • para ver, git config --list --system(puede necesitarsudo )
  • establecer git config --system color.ui true
  • para editar el archivo de configuración del sistema, git config --edit --system

2. Nivel global (valores específicos personalmente para usted, el usuario).

  • para ver, git config --list --global
  • establecer git config --global user.name xyz
  • para editar el archivo de configuración global, git config --edit --global

3. Nivel de repositorio (específico para ese repositorio único)

  • para ver, git config --list --local
  • establecer, git config --local core.ignorecase true(--local opcional)
  • para editar el archivo de configuración del repositorio git config --edit --local( --localopcional)

¿Cómo veo todas las configuraciones?

  • Run git config --list, que muestra el sistema , mundial , y (si dentro de un repositorio) locales configuraciones
  • Ejecutar git config --list --show-origin, también muestra el archivo de origen de cada elemento de configuración

¿Cómo leo una configuración particular?

  • Corre git config user.namepara obtener user.name, por ejemplo.
  • También puede especificar las opciones --system, --global, --localpara leer ese valor a un nivel determinado.

Referencia: 1.6 Comenzando - Configuración de Git por primera vez

kgf3JfUtW
fuente
1
git config --listMostrar todo global, sistema y local? necesito afirmación :)
Adi Prasetyo
2
solo para agregar dónde están los archivos de configuración: Sistema: C: \ ProgramData \ Git \ config (en Windows). Global: C: \ Users \ user \ .gitconfig (Windows) ~ / .gitconfig (Linux) Local: project-repo / .git / config
Alex
@AdiPrasetyo Sí. Puede ejecutar git config --list --show-originpara averiguar el origen de cada elemento de configuración.
kgf3JfUtW
109
git config --list

Es un camino a seguir. Aunque generalmente solo abro .gitconfig.

Torre
fuente
2
¿Tenía la intención ~/.gitconfigo uno de los otros archivos mencionados en la sección ARCHIVOS de git help config?
chwarr
1
@chwarr - Lo siento, no entiendo. ¿"Intenté"?
Rook
1
Creo que querías decir "Normalmente solo abro ~/.gitconfig", ya que git no busca .gitconfigen el directorio actual, independientemente de dónde se encuentre. ( .gitconfigy ~/.gitconfignombre diferentes archivos [ generalmente ].) Los otros archivos mencionados en git help configtienen nombres de archivo diferentes, de ahí la suposición.
chwarr
32

También puede llamar git config -epara abrir el archivo de configuración en su editor directamente. El archivo de configuración de Git es mucho más legible que la -lsalida, por lo que siempre tiendo a usar la -ebandera.

Entonces para resumir:

git config -l  # List Git configuration settings (same as --list)
git config -e  # Opens Git configuration in the default editor (same as --edit)
  • Sin parámetros, interactúa con lo local .git/config.
  • Con --globalél interactúa con ~/.gitconfig.
  • Y con --systemél interactúa con $(prefix)/etc/gitconfig.

(Realmente no pude encontrar lo que $(prefix)significa, pero parece estar predeterminado $HOME).

leondepeon
fuente
13

También puedes usar cat ~/.gitconfig.

Ankit K Gupta
fuente
11

Git 2.6 (septiembre / octubre de 2015) agregará la opción --name-onlypara simplificar la salida de a git config -l:

Ver commit a92330d , commit f225987 , commit 9f1429d (20 de agosto de 2015) por Jeff King ( peff) .
Ver commit ebca2d4 (20 de agosto de 2015), y commit 905f203 , commit 578625f (10 de agosto de 2015) por SZEDER Gábor ( szeder) .
(Fusión por Junio ​​C Hamano - gitster- en commit fc9dfda , 31 de agosto de 2015)

config: agregar '--name-only ' opción para listar solo nombres de variables

' git config' solo puede mostrar valores o pares de nombre-valor, por lo que si un script de shell necesita los nombres de las variables de configuración establecidas, debe ejecutar ' git config --list' o ' --get-regexp' y analizar la salida para separar los nombres de las variables de configuración de sus valores.
Sin embargo, este análisis no puede hacer frente a valores de varias líneas.

Aunque ' git config' puede producir una salida terminada en nulo para el análisis seguro de nueva línea, no es útil en este caso, porque los shells no pueden hacer frente a caracteres nulos.

Incluso nuestro propio script de finalización de bash sufre de estos problemas.

Ayude al script de finalización, y a los scripts de shell en general, introduciendo la --name-onlyopción ' ' para modificar la salida de ' --list' y ' --get-regexp' para enumerar solo los nombres de las variables de configuración, para que no tengan que realizar un procesamiento posterior propenso a errores para separe los nombres de las variables de sus valores.

VonC
fuente
10

Una cosa importante sobre git config:

git configtiene --local, --globaly --systemlos niveles y los archivos correspondientes.

Entonces puedes usar git config --local, git config --globaly git config --system.

Por defecto, git configescribirá a un local nivel si no se pasa ninguna opción de configuración. Los valores de configuración local se almacenan en un archivo que se puede encontrar en el directorio .git del repositorio:.git/config

La configuración de nivel global es específica del usuario, 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. ~/.gitconfigen sistemas Unix y C:\Users\<username>\.gitconfigen Windows.

La configuración a nivel del sistema se aplica en toda una máquina. Esto cubre a todos los usuarios en un sistema operativo y todos los repositorios. El archivo de configuración a nivel del sistema vive en un gitconfigarchivo fuera de la ruta raíz del sistema. $ (prefijo) / etc / gitconfig en sistemas Linux. En Windows, este archivo se puede encontrar en C:\ProgramData\Git\config.

Entonces su opción es encontrar ese .gitconfigarchivo global y editarlo.

O puedes usar git config --global --list.

Esta es exactamente la línea que necesitas.

Ingrese la descripción de la imagen aquí

prosti
fuente
7

Si solo desea enumerar una parte de la configuración de Git, como alias , núcleo , remoto , etc., puede canalizar el resultado a través de grep. Algo como:

git config --global -l | grep core
dleal
fuente
4

En sistemas basados ​​en Linux, puede ver / editar un archivo de configuración

vi/vim/nano .git/config

Asegúrate de estar dentro de la carpeta Git init.

Si quieres trabajar --global config, es

vi/vim/nano .gitconfig

en / home / userName

Esto debería ayudar con la edición: https://help.github.com/categories/setup/

Daniel Perník
fuente
3

Para encontrar todas las configuraciones, simplemente escriba este comando:

git config --list

En mi local ejecuto este comando.

Md Masud@DESKTOP-3HTSDV8 MINGW64 ~
$ git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
rebase.autosquash=true
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
http.sslbackend=openssl
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
credential.helper=manager
[email protected]
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
infomasud
fuente
El comando git config es una función conveniente que se utiliza para establecer los valores de configuración de Git a nivel de proyecto global o local. Estos niveles de configuración corresponden a archivos de texto .gitconfig. Lea más aquí: atlassian.com/git/tutorials/setting-up-a-repository/git-config
infomasud
Genial, ¿puedes agregar eso a tu respuesta?
RamenChef
1

Desde Git 2.26.0 , puede usar la --show-scopeopción:

git config --list --show-scope

Salida de ejemplo:

system  rebase.autosquash=true
system  credential.helper=helper-selector
global  core.editor='code.cmd' --wait -n
global  merge.tool=kdiff3
local   core.symlinks=false
local   core.ignorecase=true

Se puede combinar con

  • --localpara la configuración del proyecto, --globalpara la configuración del usuario , para la configuración --systemde todos los usuarios
  • --show-origin para mostrar la ubicación exacta del archivo de configuración
ford04
fuente