首页 > 解决方案 > 用于个人和工作资料的 Git includeIf 不起作用

问题描述

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

我想用我的个人资料(用“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

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

谢谢你的帮助。

✨ 对于未来的谷歌人

我创建了一个要点来解释这些步骤。

标签: gitincludeconfigprofile

解决方案


您需要删除一个空格:

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

即,将其改为:

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

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

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


推荐阅读