~/.gitconfig
配置用来存储用户相关的配置,当 git 在提交或其他操作时,如果找不到项目目录下的 .git/config
文件时会回退到使用该全局配置文件。
大部分的配置可以通过 git config
来配置,比如常见的设置用户名和密码。
git config user.name "Ein Verne"
git config user.email "[email protected]"
通常情况下只需要维护一份全局的 ~/.gitconfig
然后在各自的项目中维护自己的 gitconfig
即可,但是我最近遇到一个问题便是,我迁移了几十个项目到另外一台机器中,这些项目我需要一个 ~/.gitconfig-work
的配置,用来区别和其他 git config
配置中使用的用户名和邮箱。
比如经常见到的 work 中有一个工作邮箱,自己在使用 GitHub 时有一个自己的邮箱,另外在其他开源项目中有一个独特的用户名和邮箱。这个时候就需要使用到 git 配置中的 includeIf
配置。
一份正常的 ~/.gitconfig
配置可能是这样的:
[user]
email = [email protected]
name = Ein Verne
signingkey = 92
[push]
default = matching
[alias]
unstage = reset HEAD --
a = add
b = branch
[commit]
gpgsign = true
[gpg]
program = gpg
[includeIf "gitdir:~/play/"]
path = .gitconfig-play
[includeIf "gitdir:~/projects/"]
path = .gitconfig-wk
中间略有省略,不过大致的格式是这样。注意到最后的 includeIf
配置。
上面两行表示的意思就是对于 ~/play/
下面的项目,使用 ~/.gitconfig-play
配置。
看一下 ~/.gitconfig-play
的配置。
[user]
email = [email protected]
name = Alex
然后对于 ~/projects/
下面的项目,就使用 ~/.gitconfig-wk
配置。