Skip to content

Latest commit

 

History

History
35 lines (24 loc) · 1.24 KB

git.md

File metadata and controls

35 lines (24 loc) · 1.24 KB

git-config includeIf

为避免 个人配置 与 git package 中的配置冲突, 原本的 ~/.gitconfig 被移动到 ~/.config/git/config, 现在可以在 ~/.gitconfig 中加入自定义配置, 比如全局的 user.nameuser.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", 没有 / 时是精确匹配.

reference