¿Dónde se escribe git config --global?

1025

Cuando se usa git config --globalpara configurar cosas, ¿en qué archivo escribirá?

Ejemplo:

git config --global core.editor "blah"

No puedo encontrarlo en estos lugares:

C:\Program Files\Git\etc\gitconfig

C:\myapp\.git\config

No he configurado un ENV?

Mi versión Git: 1.6.5.1.1367.gcd48 - en Windows 7

Ian Vaughan
fuente
1
¿Estás usando msysgit o algo más?
codeguru
359
git config --global --editdebería decirle la ubicación exacta sin importar qué tipo de configuración tenga, solo mire qué archivo aparece en su editor.
MatrixFrog
55
git config --global --listTambién fue útil para cuando no existe, ya que dio la ubicación de donde git espera que esté.
AJP
44
@AJP: ¿Este es exactamente mi problema, pero cómo cambiar dónde quiere guardarlo / leerlo?
Stijn de Witt
1
git config --list --show-origin te dirá la ubicación
eddyP23

Respuestas:

1240

Actualización 2016: con git 2.8 (marzo de 2016), simplemente puede usar:

git config --list --show-origin

Y con Git 2.26 (Q1 2020), puede agregar una --show-scopeopción

git config --list --show-origin --show-scope

Verá qué configuración se establece dónde.
Consulte " ¿ De dónde provienen las configuraciones en mi configuración de Git? "

Como Steven Vascellaro señala en los comentarios ,

funcionará con ubicaciones de instalación no estándar. (es decir, Git Portable )

(como el último PortableGit-2.14.2-64-bit.7z.exe, que puede descomprimirse en cualquier lugar que desee)


Respuesta original (2010)

De los documentos :

--global

Para las opciones de escritura: escriba en el ~/.gitconfigarchivo global en lugar del repositorio .git/config.

Como estás usando Git para Windows , puede que no esté claro a qué ubicación corresponde. Pero si observas etc / profile (in C:\Program Files\Git), verás:

HOME="$HOMEDRIVE$HOMEPATH"

Sentido:

C:\Users\MyLogin

(en Windows 7)

Eso significa que el archivo está en C:\Users\MyLogin\.gitconfigGit en Windows 7.

VonC
fuente
8
Estaba siendo muy tonto, ¡no agregué la bandera "--global" al comando de edición! "git config --global --edit" mostró el archivo con todos mis cambios de configuración, "git config --edit" fue el archivo que seguí abriendo y pensando, ¿dónde está ese elemento de configuración editor / compare / etc que acabo de configurar! Muchas gracias.
Ian Vaughan el
66
Gracias. He visto otros lugares donde se dice que está en% USERPROFILE%. En mi computadora, HOMEDRIVE y HOMEPATH se reasignan a una unidad de red. Las búsquedas en mi disco local no dieron con nada. Entonces esto ayudó mucho.
Mike M. Lin
2
Realmente útil, tenía el mismo problema: si está en un dominio con una unidad de inicio asignada, intentará crear la configuración de git allí. Esto haría una buena solicitud de función: use% HOMEDRIVE% o% USERPROFILE%
plasmid87 el
2
¿Por qué esto se llama global, cuando es solo para un usuario? No sería (para Unix) /etc/gitconfig"global" y ~/.gitconfigsolo "local" ..... y supongo que .git/config"hiperlocal" ----- Básicamente, encuentro el término "global" para esto confuso, y yo se preguntaba si había una buena razón para la nomenclatura?
Peter Ajtai
77
@PeterAjtai "global" porque es para todo su repositorio. A diferencia de "local" (solo para un repositorio) o "sistema" (que es para todos los repositorios, para todos los usuarios)
VonC
123

También estaba buscando lo global .gitconfigen mi máquina con Windows y encontré este buen truco usando git.

Hacer un: git config --global -e y luego, si tiene suerte, obtendrá un editor de texto cargado con su .gitconfigarchivo global . Simplemente busque la carpeta desde allí (o intente guardar como ...), ¡y listo! :-)

ENOJADO
fuente
¡Justo lo que estaba buscando! el comando -e! Porque editar una propiedad a la vez no es mi esencia.
Patareco
1
La ejecución de este comando también creará un C:\Users\<user_name>\.gitconfigsi falta.
pmbanka
Estoy ejecutando en un modo sin ventana y no puedo encontrar la ubicación en ningún lugar
Triynko
73

En * nixes, está adentro ~/.gitconfig. ¿Hay un archivo correspondiente en su casa?

En Windows puedes escribir git bash

notepad ~/.gitconfig
Ben
fuente
66
Esto debería ser lo mismo en Windows.
Felix Kling
2
Si quieres que te hagan a ella fácilmente, escribir un alias :) Aquí está la mía: alias gitconfig='open -a Sublime\ Text.app ~/.gitconfig'. Use el editor de texto que desee.
agosto
43

Las rutas para msysgit son:

Windows XP -C:\Documents and Settings\<user_name>\.gitconfig

Windows Vista + C:\Users\<user_name>\.gitconfig

picadillo
fuente
17
Probablemente sea mejor describir esto como% USERPROFILE%, entonces la respuesta funcionará para todas las versiones de Windows, pasadas, presentes y futuras.
jarmod
3
Excepto que creo que en realidad es% HOMEDRIVE %% HOMEPATH% como en otras respuestas, que es igual a% USERPROFILE% en muchos casos, pero algunos de nosotros tenemos configuraciones de TI que lo apuntan a una unidad asignada.
Comprar el
34

La ubicación global se deriva, en Windows MsysGit, utilizando las variables de entorno HOMEDRIVE y HOMEPATH, a menos que haya definido una variable de entorno HOME. El se detalla en el script 'perfil'.

En mi entorno corporativo, HOMEDRIVE es H :, que luego se asigna a una URL de red \\ share \ $. Todo el lote se asigna para ser "Mis documentos", que no es donde otros esperarían. Es posible que haya habido otros problemas con la unidad de reasignación de URL. Ni siquiera puedo ajustar las variables HOMEDRIVE o HOMEPATH de todos modos.

En mi caso, definí una variable de entorno HOME personal y la apunté a D: \ git \ GitHOME y copié todos esos archivos GIT (que están sin extensión) en el directorio GitHOME para mantenerlos seguros.

Las variables de entorno de Windows se pueden configurar a través de la pestaña Avanzado en el cuadro de diálogo Propiedades de Mi PC.

Philip Oakley
fuente
1
Estaba desplazándome por las respuestas a punto de publicar en las variables HOMEDRIVEy HOMEPATH, ya que me atraparon mientras usaba Bower. Parece que varias utilidades en Windows leen desde <system>:\User\<username>\.gitconfig, while the Git tool itself saves to % HOMEPATH% \. Gitconfig . I had to go one step further and copy the updated config file from my H: `(nuestra red usa la misma letra de unidad para eso) en mi carpeta de usuario local, solo entonces Git usó las reglas correctamente cuando Bower lo llamó.
1
@ZaLiTHkA, en mi red corporativa, la unidad Home (H :) del usuario también se vuelve a asignar a la ubicación C: \ User \, por lo que no me di cuenta de eso. Si puede identificar cuáles son las utilidades de FOSS que cometen el error, esa sería información útil para ayudar a obtener informes / corregir esas herramientas. Si son herramientas corporativas internas, usted está solo ;-)
Philip Oakley
A menos que sea más complicado que una simple línea setter, no veo HOME definido en el script etc \ profile. Todavía parece actuar como se describe, pero no estoy claro dónde se está configurando HOME hoy en día.
Comprar el
@ojchase Mi parte de la respuesta de dónde se escribe --glob config está relacionada específicamente con Windows. El núcleo de git de Linux escribe en lugares como donde la cosa XDG dirige (es decir, soy consciente de que Linux escribe en otros lugares y tiene otras convenciones, y lo que es más importante, tiene un directorio raíz mientras que Windows tiene 'Unidades' ;-)
Philip Oakley
@PhilipOakley También me refería a Windows; Lo siento, no estaba claro. Combinando su respuesta y otras, esperaba algún tipo de línea HOME = $HOMEDRIVE$HOMEPATH(o similar) C:\Program Files\Git\etc\profiley esa línea no parece existir, pero probablemente ¿solía hacerlo? No he podido averiguar exactamente qué está configurando $ HOME a menos que esté configurado por una variable de entorno que preferiría no hacer.
compre el
12

Si está utilizando TortoiseGit en una PC con Windows, puede usar:

Settings / Git / Config / Edit global .gitconfig

para abrir el archivo global .gitignore.

Pero si usa su PC con Windows (7) en un dominio, su directorio de perfil puede ser un recurso compartido de red (montado como una unidad). En este caso, TortoiseGit (al menos: 1.6.5.0) le está apuntando al directorio incorrecto (en c: ...). Vea el problema cerrado TortoiseGit 922 para más información. O usando% HOMEDRIVE %% HOMEPATH% para abrir el directorio que contiene el archivo .gitignore.

DanielaWaranie
fuente
10

Estoy usando SmartGit con msysgit en Windows 8.1 y noté que puede haber tres ubicaciones diferentes para el gitconfigarchivo:

%USERPROFILE%\.gitconfig
C:\Program Files (x86)\Git\etc\gitconfig
C:\Program Files (x86)\SmartGitHg\git\etc\gitconfig

Pero el que se usa es el de %USERPROFILE%\.gitconfig.

Benny Neugebauer
fuente
6

Puede ser útil tener en cuenta (para plataformas * nix): se almacenan algunos tipos de configuración / información global de git /usr/share/git-core/, como los scripts de autocompletado de git y los siguientes ganchos (predeterminados):

  • applypatch-msg
  • post-actualización
  • pre cometido
  • prepare-commit-msg
  • commit-msg
  • parche previo a la aplicación
  • pre-rebase
  • actualizar

Cada uno de estos puede contener su propio conjunto de comandos para ejecutar, en el momento descrito por sus respectivos nombres de archivo.

samstav
fuente
2
No es útil para la pregunta OP.
pez orb
5

También tuve un problema con mi global. .gitconfig Esto es para el caso de que alguien también tenga este extraño

git dijo:

fatal: se produjo un error desconocido al leer los archivos de configuración

Ahora lo arreglé. El problema fue un segundo .gitconfigen esta carpeta:

c: \ Users \ myUser.config \ git \ config

No sé de dónde vino ... Pero ahora todo vuelve a funcionar como un encanto.

Melena
fuente
5

¿Cuándo se crea el archivo global .gitconfig?

En primer lugar, git no crea automáticamente el archivo de configuración global (.gitconfig) durante su instalación. El archivo no se crea hasta que se escribe por primera vez. Si nunca ha establecido una variable del sistema, no estará en su sistema de archivos.Supongo que esa podría ser la fuente del problema.

Una forma de pedirle a Git que lo cree es solicitar una edición. Hacerlo forzará la creación del archivo.

git config --global --edit

Si supervisa la carpeta de inicio del usuario cuando emite este comando, verá aparecer mágicamente el archivo .gitconfig.

¿Dónde se almacena la configuración de git?

Aquí hay un resumen rápido del nombre y la ubicación de los archivos de configuración asociados con los tres ámbitos de Git, a saber, el sistema , global y local :

  • Configuración de System Git: archivo llamado gitconfig ubicado en -git-install-location- / ming <32> / etc
  • Configuración global de Git: archivo denominado .gitconfig ubicado en la carpeta de inicio del usuario (C: \ Users \ git user)
  • Configuración local de Git: archivo llamado config en la carpeta .git del repositorio local

Por supuesto, ver para creer, así que aquí hay una imagen que muestra cada archivo y cada ubicación. Saqué la imagen de un artículo que escribí sobre el tema.

Ubicaciones de archivos de configuración de Windows Git (TheServerSide.com)

Ubicación de los archivos de configuración de Git

Cameron McKenzie
fuente
1
hay un cuarto lugar llamado configuración portátil: aquí mencionan los 4 lugares; Git para Windows admite cuatro niveles de configuración. En el nivel más bajo se encuentra la configuración de configuración específica de la máquina conocida como "portátil" y vive un "% ProgramData% \ Git \ config"
Badr Elmers el
1
¡Mente alucinada! Voy a actualizar el artículo con la nueva información. ¡Salud!
Cameron McKenzie
4

Estoy ejecutando Windows 7 y estoy usando git como configuración siguiendo las instrucciones en GitHub (uno o dos años atrás). Un caso de uso bastante común, habría pensado. Ninguna de las respuestas anteriores me ayudó, y después de mucha frustración eventualmente encontré mi archivo 'real' gitconfig en el siguiente directorio;

C: \ Users \ Bill \ AppData \ Local \ GitHub \ PortableGit_054f2e797ebafd44a30203088cd 3d58663c627ef \ etc

Obviamente sustituya su nombre de usuario y presumiblemente el sufijo después de PortableGit_ es un GUID único o similar.

Bill Forster
fuente
1
Este es solo el caso cuando se usa GitHub para Windows.
Serpiente
3

Creo que es importante publicar esta cita:

Git para Windows admite cuatro niveles de configuración. En el nivel más bajo se encuentran los ajustes de configuración específicos de la máquina conocidos como "portátiles" y viven un "% ProgramData% \ Git \ config". Uno de los niveles de prioridad es la configuración específica de instalación conocida como "sistema", que se encuentra en "\ mingw64 \ etc \ gitconfig". Ambos archivos de configuración requieren generalmente privilegios elevados para modificar.

Comenzando con el uso de valores específicos conocidos como configuración "global", que se pueden encontrar en "% UserProfile% .gitconfig", encontramos los archivos de configuración "editables por el usuario". Los ajustes de configuración de mayor prioridad se encuentran en la configuración "local", que generalmente se puede encontrar en ".git \ config".

Se ve que la recomendación en el blog vinculado es modificar los ajustes de configuración específicos del "sistema" o la "instalación", lo cual está bien, pero los usuarios deben esperar que otras instalaciones de Git no absorban dichos ajustes. Si desea una configuración amplia de la máquina, use el archivo de configuración "portátil", de lo contrario, elija los archivos de configuración "global" o "local".

Con suerte, la gente encuentra útil esta información.

fuente

Badr Elmers
fuente
3

Como señaló @MatrixFrog en su comentario , si el objetivo es editar la configuración, es posible que desee ejecutar:

git config --global --edit

Este comando abrirá el archivo de configuración (en este caso, el que --globalestá) en el editor de su elección y esperará a que el archivo se cierre (al igual que durante git rebase -i).

Dmitry Parzhitsky
fuente
Usted puede usar esto para averiguar dónde está el mundial .gitconfigse encuentra -. Siempre y cuando su editor que lo directorio que el archivo está ubicado en cuenta También puede utilizar otros interruptores ( --system, --local, etc.) para encontrar y editar otros .gitconfiglugares. PS -ees lo mismo que--edit
LightCC
1

Desinstale Msysgit e instale Cygwin + Git. Entonces global '.gitconfig' estará aquí: C: \ cygwin (64) \ home \ [userName] \. Gitconfig.

Ahora no tiene que preocuparse por una variable de entorno que pueda ser utilizada por otros programas. Por ejemplo, mi variable de entorno me señaló una unidad asignada en mi entorno de dominio de Windows de trabajo. No quiero mi .gitconfig global sentado en mi disco mapeado "hogar". Tampoco sé qué podría pasar con otras aplicaciones que podrían depender de esa variable de entorno de Windows. La división de operaciones puede necesitar esa variable de entorno establecida en la unidad asignada por una razón.

Además, no tiene que preocuparse de que Mysysgit sobrescriba la configuración de su 'perfil' si especifica una ruta específica a '.gitconfig' global, utilizando este método.

En general, sálvate y usa cygwin bash shell en windows y sé más feliz

efecto
fuente
1

Tuve un problema similar; el problema era que el .gitconfigarchivo estaba ubicado en

C:\Users\MyLogin\.gitconfig\

(en Windows 7)

En otras palabras, el archivo estaba ubicado en C:\Users\MyLogin\.gitconfig\.gitconfiglugar de en C:\Users\MyLogin\.gitconfig(que es donde Git estaba buscando los archivos).

rolandog
fuente
1

.gitconfig ubicación del archivo

macOS prueba OK

global

# global config
$ cd ~/.gitconfig

# view global config
$ git config --global -l

local

# local config
$ cd .git/config

# view local config
$ git config -l

tal vez una bonificación para usted: Vimo VSCodepara editar la configuración de git


# open config with Vim

# global config
$ vim ~/.gitconfig

# local config
$ vim .git/config


# open config with VSCode

# global config
$ code ~/.gitconfig

# local config
$ code .git/config
xgqfrms
fuente
0

Había instalado mi Git en: C:\Users\_myuserfolder_\AppData\Local\Programs\Git

KikeSP
fuente