我到目前为止在Git上阅读的指南说我应该进入配置并指定我的姓名和电子邮件地址.他们没有详细说明; 他们只是说这样做.
为什么Git需要我的电子邮件地址?而且,更重要的是,如果我通过GitHub公开我的回购,我的电子邮件地址是否会被所有人(包括垃圾邮件程序员)看到?
2017年4月更新
请参阅" 私人电子邮件,现在更私密 "
GitHub已经支持使用备用的"noreply"电子邮件地址来创建基于Web的提交一段时间了.从今天开始,还有另一种方法可以确保您在通过命令行向GitHub提交提交时不会无意中发布您的电子邮件地址.
Git使用您的电子邮件地址将您的姓名与您创作的任何提交相关联.将提交推送到GitHub上的公共存储库后,也会发布作者元数据.
如果您希望确保不会意外地发布您的电子邮件地址,只需在电子邮件设置中选中"保持我的电子邮件地址私密"和"阻止命令行推送我的电子邮件"选项.
注意:如下面由orev 评论,Git不会暴露任何内容.Git存储库托管服务GitHub可能会.
您推送本地Git仓库的位置可以公开元数据.
注意:从 2013年8月9日开始,您现在可以将您的电子邮件地址保密!
这适用于基于Web的GitHub操作:提交仍然包含一个电子邮件地址,该地址可能与用于GitHub帐户的地址相同或不同.
请参阅下面的"掩盖"(git commit)电子邮件.
直到今天,所有基于Web的GitHub Flow都使用了您的主电子邮件地址.这包括创建,编辑和删除文件,以及合并拉取请求.
但现在您可以将您的电子邮件地址保密.为此,请访问您的电子邮件设置页面:
启用此功能后,基于Web的操作将使用username@users.noreply.github.com电子邮件地址.
如果您想要隐藏从您的计算机制作的电子邮件,GitHub现在允许您注册不同的电子邮件地址:请参阅本指南.
如果你想让你的提交反映出来,你仍然需要在回到GitHub之前在本地仓库配置你的(假)电子邮件
git config --global user.email "user@server.fake" # Set email to slightly changed value git config --global user.email # Verify the setting # user@server.fake
然后:
转到电子邮件设置菜单
点击"添加其他电子邮件地址"
输入虚假电子邮件(例如" user@server.fake
")并点击"添加"
注意:
此设置仅影响将来的提交.
如果要从存储库的提交历史记录中删除真实的电子邮件地址,则必须重写旧的提交.最简单的方法是:使用
git filter-branch
重写历史资料库和强制推新的历史了.
Git使用您的电子邮件地址来识别您的身份,以及执行其他任务(例如使用GPG密钥签名).您的电子邮件地址确实作为身份的一部分嵌入到提交日志等中,以及您指定的名称.例如,提交日志中的"author"字段将显示为:
Author: Joe White
因此,任何拥有回购副本的人都可以获得该信息,因为它充当了标识符.
但是,除非您使用Gitweb或GitHub之类的服务通过网络界面提供您的仓库(仅将其放在互联网上不会这样做),否则垃圾邮件可能无法看到您的电子邮件.
我想你可以填写一个虚假的电子邮件地址或使用空字符串或空格或其他东西(我不认为Git检查电子邮件的格式或有效性),但如果克隆回购的人需要发送电子邮件,那么该电子邮件很有用你补丁或以某种方式联系你.
GitHub有一篇名为" 保持您的电子邮件地址私密"的帮助文章,它开头:
Git要求您标识自己以进行提交,但您可以使用虚假地址隐藏您的联系信息.Git本身并不关心电子邮件是否有效.
很高兴知道:虽然Git不关心,但如果您的提交没有有效的电子邮件地址,某些项目可能不会接受您的贡献,因此您需要在遵循这些说明之前研究项目的贡献政策.
GitHub没有收到很多关于垃圾邮件发送到Git提交电子邮件地址的报告,但如果您对此感到担心,本指南应该可以帮助您解决这些问题.
该指南包含如何配置Git和GitHub以使用虚假地址的步骤.
是的,上面的答案是正确的......除了你想要通常为你的所有项目都有相同的电子邮件地址,然后你会使用命令:
git config --global user.email "me@email.com"
您还可以在用户部分的主目录中编辑.gitconfig文件.
您可以通过执行不带全局选项的相同命令为特定项目指定其他电子邮件.
此外,如果提交的内容是公共区域,我建议您可以对您的电子邮件进行模糊处理:
briancolfer(at)comcast.net
举个例子.