每次提交时都要让git询问我的电子邮件

时间:2018-09-02 19:28:52

标签: git

我以前只使用我的个人电子邮件地址进行git commit。现在,我开始从事软件开发人员的工作。我想将我的工作电子邮件地址用于我的工作存储库,并将我的个人电子邮件地址用于个人存储库。我使用git config user.email "username@example.com"来做到这一点。问题是我有很多存储库,有时我忘记设置user.email。有时,我会使用错误的电子邮件地址提交和推送。

如果没有为存储库明确设置user.email,是否有一种方法可以强制git不允许我提交?我从全局user.email中删除了~/.gitconfig,但是git使用username@hostname.local作为我的提交电子邮件地址。

我在MacOS High Sierra上使用git版本2.18.0。我使用自制软件安装了git。

1 个答案:

答案 0 :(得分:2)

您可以使用conditional includes为某个路径包括其他配置文件。这样,您可以为存储在某些目录(及其子目录)中的存储库设置全局电子邮件地址和其他不同的电子邮件地址。您还应该将user.useConfigOnly设置为true,以防止Git在未设置电子邮件地址时猜测它。

我的~/.gitconfig包含以下部分:

[user]
    name = John Doe
    # The default email, used for personal projects
    email = john.doe@example.org
    # This prevents Git guess the email address if it is not set
    useConfigOnly = true

[includeIf "gitdir:~/work/"]
    path = ~/.config/git/config-work

文件~/.config/git/config-work如下所示:

[user]
    name = John Doe
    email = john.doe@company.org

仅针对位于~/work或其子目录中的存储库进行加载。

如果需要,可以在[includeIf]文件中使用多个~/.gitconfig部分。每个包含的文件都可以覆盖~/.gitconfig中列出的配置条目,或根据需要添加新条目。