为避免 个人配置 与 git package 中的配置冲突, 原本的 ~/.gitconfig
被移动到 ~/.config/git/config
,
现在可以在 ~/.gitconfig
中加入自定义配置, 比如全局的 user.name
和 user.email
配置, git 会自行合并不同位置的配置文件.
尝试搜索 "gitconfig based on directory" 发现了 git-config 的 includeIf
选项, 这里给出一则配置示例,
假设需要为 ~/code/git.company-a.net
目录配置不同的 user.name
, user.email
和 ssh key,
; ~/.gitconfig, git package 的配置 ~/.config/git/config 由 stow 管理
[user]
user.name = John Smith
user.email = [email protected]
[includeIf "gitdir:~/code/git.company-a.net/"]
path = ~/code/git.company-a.net.gitconfig
; ~/code/git.company-a.net.gitconfig
[core]
sshCommand = ssh -i ~/.ssh/id_ed25519_git.company-a.net
[user]
user.name = John Smith
user.email = [email protected]
注意 [includeIf "gitdir:~/code/git.company-a.net/"]
配置中目录最后的斜杠 /
,
这表示 "include for all repositories inside ~/code/git.company-a.net", 没有 /
时是精确匹配.