我曾经只使用我的个人电子邮件地址进行git提交。现在我已经开始作为软件开发人员工作了。我想将我的工作电子邮件地址用于我的工作存储库,并将个人电子邮件地址用于个人存储库。我使用git config user.email "[email protected]"
来做到这一点。问题是我有很多存储库,我有时会忘记设置user.email
。有时,我提交并推送错误的电子邮件地址。
如果没有为存储库明确设置user.email
,有没有办法强制git不允许我提交?我从我的全球user.email
中删除了~/.gitconfig
,但随后git使用[email protected]
作为我的提交电子邮件地址。
我在MacOS High Sierra上使用git版本2.18.0。我用自制软件安装了git。
您可以使用conditional includes为某个路径包含不同的配置文件。这样,您可以为存储在某些目录(及其子目录)中的存储库设置全局电子邮件地址和不同的其他电子邮件地址。您还应该将user.useConfigOnly
设置为true
,以禁止Git猜测未设置的电子邮件地址。
我的~/.gitconfig
包含以下部分:
[user]
name = John Doe
# The default email, used for personal projects
email = [email protected]
# 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 = [email protected]
它仅加载位于~/work
或其子目录中的存储库。
如果需要,可以在[includeIf]
文件中使用多个~/.gitconfig
部分。每个包含的文件都可以覆盖~/.gitconfig
中列出的配置条目,或根据需要添加新条目。