Git是否公开了我的电子邮件地址?

Git是否公开了我的电子邮件地址?,git,privacy,Git,Privacy,到目前为止,我在Git上阅读的指南说,我应该进入配置并指定我的姓名和电子邮件地址。他们没有详细说明;他们只是说去做 为什么Git需要我的电子邮件地址?而且,更重要的是,如果我通过GitHub公开我的回购协议,我的电子邮件地址是否对每个人都可见(包括垃圾邮件)?Git使用您的电子邮件地址来识别您,以及执行其他任务(例如使用GPG密钥签署标签)。您的电子邮件地址与您指定的名称一起作为您身份的一部分嵌入到提交日志等中。例如,提交日志中的“作者”字段将显示为: Author: Joe White <

到目前为止,我在Git上阅读的指南说,我应该进入配置并指定我的姓名和电子邮件地址。他们没有详细说明;他们只是说去做


为什么Git需要我的电子邮件地址?而且,更重要的是,如果我通过GitHub公开我的回购协议,我的电子邮件地址是否对每个人都可见(包括垃圾邮件)?

Git使用您的电子邮件地址来识别您,以及执行其他任务(例如使用GPG密钥签署标签)。您的电子邮件地址与您指定的名称一起作为您身份的一部分嵌入到提交日志等中。例如,提交日志中的“作者”字段将显示为:

Author: Joe White <joewhite@mysite.com>
作者:乔·怀特 因此,任何持有回购协议副本的人都可以获得该信息,因为它是一个标识符

不过,除非你使用Gitweb或类似GitHub的服务通过web界面提供回购协议(仅仅将其放在互联网上并不能做到这一点),否则垃圾邮件可能看不到你的电子邮件


我想你可以填写一个假电子邮件地址,或者使用空字符串、空格或其他东西(我不认为Git会检查电子邮件的格式或有效性),但如果克隆回购协议的人需要向你发送补丁或以某种方式与你联系,那么电子邮件是有用的。

是的,你的电子邮件地址(如
git config user.email
中所述)将在GitWeb之类的web界面中可见。此外,每个人都可以通过克隆存储库来了解您的电子邮件地址,尽管这可能还远远超出spambots。但是,没有人强迫您使用真实的电子邮件地址。如果未提供任何电子邮件地址,Git将自动设置一个构造的电子邮件地址。在我的机器上,没有
user.email
它ows由“Foo”提交。

是的,上述答案是正确的……除非您希望所有项目都具有相同的电子邮件地址,然后您可以使用以下命令:

git config --global user.email "me@email.com"
您还可以在主目录的用户部分编辑.gitconfig文件

您可以通过在不使用全局选项的情况下执行相同的命令,为特定项目指定不同的电子邮件

此外,我建议,如果提交人要去公共区域,您可以混淆您的电子邮件:

briancolfer(at)comcast.net

例如。

您可以追溯更改作者姓名、电子邮件等。请注意,执行以下操作可能会损坏您的历史记录

#!/bin/sh

git filter-branch --env-filter '

an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"

if [ "$GIT_COMMITTER_EMAIL" = "your@email.to.match" ]
then
    cn="Your New Committer Name"
    cm="Your New Committer Email"
fi
if [ "$GIT_AUTHOR_EMAIL" = "your@email.to.match" ]
then
    an="Your New Author Name"
    am="Your New Author Email"
fi

export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
'

摘自GitHub的一篇帮助文章,名为:

Git要求你确认自己才能提交,但你可以使用假地址隐藏你的联系信息。Git本身并不关心电子邮件是否有效

很高兴知道:虽然Git并不关心,但如果您的提交没有有效的电子邮件地址,某些项目可能不接受您的贡献,因此您需要在遵循这些说明之前研究您的项目的贡献策略

GitHub没有收到很多关于垃圾邮件被发送到Git commit电子邮件地址的报告,但是如果您对此感到担忧,本指南应该可以帮助您解决这些问题


该指南包含如何配置Git和GitHub以使用假地址的步骤。

GitHub有一个关于

具体来说,它说:

好消息:你不必发送一封有效的电子邮件。如果你担心垃圾邮件,就用一封假电子邮件代替。user@example.com这是一种常见的做法

2017年4月更新

见“

GitHub现在支持使用备用“noreply”电子邮件地址来编写基于web的提交。从今天开始,有另一种方法可以确保您在通过命令行将提交推送到GitHub时不会无意中发布您的电子邮件地址


Git使用您的电子邮件地址将您的姓名与作者的任何提交关联。一旦您将提交推送到GitHub上的公共存储库,作者身份元数据也将发布

如果您希望确保不会意外发布电子邮件地址,只需选中“保持我的电子邮件地址私有”和“阻止命令行推送以公开我的电子邮件”选项即可

注意:如前所述,不公开任何内容。Git存储库托管服务可能会公开任何内容。
推送本地Git repo的地方可以公开元数据


注意:开始

但这适用于基于web的GitHub操作:提交仍然包含电子邮件地址,该地址可能与GitHub帐户使用的地址相同,也可能不相同。
请参见下面的“屏蔽”(git commit)电子邮件

直到今天,所有基于web的GitHub流都使用您的主电子邮件地址。这包括创建、编辑和删除文件,以及合并请求

但现在您可以将您的电子邮件地址保密。要做到这一点,请访问您的电子邮件设置页面:

启用此选项后,基于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
    ”),然后单击“添加”

请注意:

此设置仅影响将来的提交
如果要从存储库的提交历史记录中删除真实电子邮件地址,则必须重写旧的提交。最简单的方法是:

使用并强制推高新的历史记录


数百万GitHub提交电子邮件泄漏

从GitHub文件中提取导出并提交

GitHub Archive从GitHub的events API获取数据:并每小时将其导出到GoogleBigQuery,从而使其成为e
ghmail() { curl "https://api.github.com/users/$1/events/public" | grep email; }
ghmail cirosantilli