如何在配置文件为“$ XDG_CONFIG_HOME / git / config”时设置Git配置选项?

时间:2014-06-12 20:40:13

标签: git config

在Fedora Linux版本20上使用Git,版本1.9.3,我正在查询用户的名字,例如:

git config user.name
# Foo Bar

但是当我尝试改变它时:

git config user.name 'Bar Foo'

我收到以下错误:

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

根据" XDG基本目录规范" (http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html)和" FILES" git-config(1)联机帮助页的一部分我将我的Git配置文件放在"$XDG_CONFIG_HOME/git/config"下。

请注意,"XDG_CONFIG_HOME变量设置为"$HOME/.config",我的环境中未设置GIT_CONFIG变量。

我知道" FILES" git-config(1)联机帮助页的一部分说明:"如果$ XDG_CONFIG_HOME未设置或为空,将使用$ HOME / .config / git / config。"

但是Git应该一致地忽略"$XDG_CONFIG_HOME/git/config"文件,即在阅读时写作。

我错过了什么吗?

2 个答案:

答案 0 :(得分:8)

您尝试在本地设置(在.git/config中)而不是全局设置(在主目录的XDG配置中)。

发生错误是因为您实际上并不在存储库中。这是一个虚假的错误信息,但我可以重复一遍:

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

作为Biffen already mentioned in a comment,您需要添加--global

作为VonC notes,误导性错误消息从git版本2.8变为合理的错误消息。

答案 1 :(得分:1)

请注意,如果您忘记了--global,则使用git 2.8(2016年3月)会更明确地显示错误消息。

commit 638fa62Johannes Schindelin (dscho)(2016年2月24日) (由Junio C Hamano -- gitster --合并于commit d3faba8,2016年2月26日)

  

git config:尝试修改不存在的repo配置时报告

     

在{h}之外调用git config section.key value是一个飞行员错误   任何Git工作树。
  消息

error: could not lock config file .git/config: No such file or directory
  但是,在这种情况下,

并不是很有帮助。让我们打印一个有用的   而不是消息。

至少现在,你知道什么时候git config 在外面一个回购。