如果我这样做:
git config --global user.name "My New Name"
它可以工作一小会儿。如果我这样做:
cat ~/.gitconfig
我可以在user.name
属性中看到正确的值。
但是,一旦我打开一个新的终端窗口或执行git commit,旧名称就会被重置。
我正在使用ssh。有一些缓存机制吗?
(请注意,这与GitHub用户名无关,而与每次提交的作者名有关)
答案 0 :(得分:2)
FILES section of the git config
documentation显示配置值的来源。
如果未使用
--file
明确设置,则有四个[或五个]文件,git config
将在其中搜索配置选项:
$(prefix)/etc/gitconfig
系统范围的配置文件。$XDG_CONFIG_HOME/git/config
第二个用户特定的配置文件。如果$XDG_CONFIG_HOME
未设置或为空,则将使用$HOME/.config/git/config
。~/.gitconfig.
中的任何内容都将覆盖此文件中设置的任何单值变量。如果您有时使用旧版本的Git,则最好不要创建此文件,因为该文件的支持是最近才添加的。~/.gitconfig
用户特定的配置文件。也称为“全局”配置文件。$GIT_DIR/config
存储库特定的配置文件。$GIT_DIR/config.worktree
这是可选的,只有在extensions.worktreeConfig
中存在$GIT_DIR/config
时才进行搜索。
关于它们的优先级
以上述顺序读取文件,找到的最后一个值优先于先前读取的值。当采用多个值时,将使用所有文件中键的所有值。
在您使用git config
或git config --local
修改存储库配置的情况下(这将修改$GIT_DIR/config
,因此.git/config
用于带有工作树的仓库或{裸存储区中的{1}},并且通过config
(存储在git config --global
中的更改)在该存储库中是不可见的。
要进行快速完整性检查,请运行两个命令。
~/.gitconfig
答案 1 :(得分:0)
我有一个覆盖全局~/.gitconfig
的shell脚本。具体来说,来自Mathias Bynens的dotfiles的.extra
文件。