¿Cómo establecer una opción de configuration de Git cuando su file de configuration es "$ XDG_CONFIG_HOME / git / config"?

Con Git, versión 1.9.3 en Fedora Linux, versión 20, consulto, por ejemplo, el nombre del usuario así:

git config user.name # Foo Bar 

Pero cuando trato de cambiarlo así:

 git config user.name 'Bar Foo' 

Obtuve el siguiente error:

 # error: could not lock config file .git/config: No such file or directory 

De acuerdo con la "Especificación de directory base de XDG" ( http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html ) y la sección "ARCHIVOS" de la página de manual de git-config (1) que puse mi file de configuration de Git en "$XDG_CONFIG_HOME/git/config" .

Tenga en count que la variable "XDG_CONFIG_HOME está configurada en "$HOME/.config" y la variable GIT_CONFIG está desactivada en mi entorno.

Soy consciente de que la sección "ARCHIVOS" de la página de manual de git-config (1) dice: "Si $ XDG_CONFIG_HOME no está configurado o vacío, se usará $ HOME / .config / git / config".

Pero entonces Git debe ignorar el "$XDG_CONFIG_HOME/git/config" consistentemente, es decir, mientras lee y escribe.

¿Me estoy perdiendo de algo?

Está intentando establecerlo localmente (en .git/config ) en lugar de globalmente (en la configuration de XDG en su directory de inicio).

El error ocurre porque no estás realmente en un repository. Es un post de error falso, pero puedo repetirlo:

 $ cd /someplace/with/no/repo; git config user.name boo error: could not lock config file .git/config: No such file or directory 

Como Biffen ya mencionó en un comentario , debes agregar --global .

Como señala VonC , el post de error engañoso se cambia a algo sensato a partir de la versión 2.8 de git.

Tenga en count que, si olvida --global , el post de error será más explícito con git 2.8 (marzo de 2016).

Ver commit 638fa62 (24 de febrero de 2016) por Johannes Schindelin ( dscho ) .
(Fusionado por Junio ​​C Hamano – gitster – in commit d3faba8 , 26 de febrero de 2016)

git config : informe al intentar modificar una configuration de repo no existente

Es un error de piloto llamar al git config section.key value fuera de cualquier tree de trabajo de Git.
El post

 error: could not lock config file .git/config: No such file or directory 

no es muy útil en esa situación, sin embargo. Vamos a imprimir un post útil en su lugar.

Así que al less ahora, sabes cuándo se hace una git config fuera de un repository.