使用git config --global会改变预先存在的git存储库的设置吗?

时间:2012-08-16 11:27:51

标签: git version-control

让我说我做一个回购

cd repo1
git init
git config user.name "Jack"
git config user.email jack@hill.com

然后我再做一次

cd ../repo2
git init
git config --global user.name "Jill"
git config --global user.email jill@hill.com

我会成为杰克还是吉尔的回购? 我假设如果这两个步骤以相反的顺序完成,那么我将成为Jack in repo1吗?

1 个答案:

答案 0 :(得分:3)

无论您运行命令的顺序如何,您都将成为repo1中的杰克和repo2中的Jill。从git config手册页:

   If not set explicitly with --file, there are four files where git config will search for configuration options:

   $GIT_DIR/config
       Repository specific configuration file.

   ~/.gitconfig
       User-specific configuration file. Also called "global" configuration file.

   $XDG_CONFIG_HOME/git/config
       Second user-specific configuration file. If $XDG_CONFIG_HOME is not set or empty, $HOME/.config/git/config will be used. Any single-valued variable
       set in this file will be overwritten by whatever is in ~/.gitconfig. It is a good idea not to create this file if you sometimes use older versions of
       Git, as support for this file was added fairly recently.

   $(prefix)/etc/gitconfig
       System-wide configuration file.

Git按顺序加载这些文件。您的本地存储库.git/config优先于~/.gitconfig,优先于$HOME/.config/git/config,优先于/etc/gitconfig。此外:

All writing options will per default write to the repository specific configuration file. Note that this also affects options like --replace-all and
--unset. git config will only ever change one file at a time.

--global标记不会更改系统中的每个.git/config,只有~/.gitconfig