Git 个人和工作资料的 includeIf 不起作用

Git includeIf for personal and work profiles doesn't work

我一直在用谷歌搜索这个问题,尝试了不同来源的不同方法...但它不起作用。

我想使用我的个人资料(定义为“git config --global user.email ...”)推送提交,除非我在我的工作文件夹中。

我的 .gitconfig 的内容位于 C:/Users/my-user/

[user]
    name = Personal
    email = personal@personal.com

[includeIf "gitdir: F:/Work/CompanyName/"]
    path = F:/Work/CompanyName/.gitconfig-work
    

我的 .gitconfig-work 的内容位于 F:/Work/CompanyName/

[user]
    name = Work
    email = work@work.com

当我从位于:

的工作转到克隆存储库时

F:/Work/CompanyName/Project

我使用:

git config --show-origin --get user.email

它显示:

file:C:/Users/<my-user>/.gitconfig

而不是我定义的路线工作。

感谢您的帮助。

✨ 对于未来的 google 员工

我创建了一个 gist 解释步骤。

您需要删除一个 space 在:

[includeIf "gitdir: F:/Work/CompanyName/"]

即,读作:

[includeIf "gitdir:F:/Work/CompanyName/"]

注意gitdir后面的冒号和要测试的路径名之间没有空格。

(你的 Git 也需要至少是 2.13 版本。你可以考虑使用 gitdir/i:f:/work/companyname/ 这样你在这里不区分大小写,假设你的主机系统也不区分大小写,正如 F: 部分所建议的那样。)