我以前只使用我的个人电子邮件地址进行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。
答案 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
中列出的配置条目,或根据需要添加新条目。