错误“您的推送将发布私人电子邮件地址”


110

我是GitHub / VCS的新手

当我尝试在GitHub上共享项目时,收到以下错误消息。

    Can't finish GitHub sharing process
    Successfully created project 'myproject' on GitHub, but initial push failed:
    remote: error: GH007: Your push would publish a private email address.
    failed to push some refs to 'https://github.com/me/myproject.git'

我已经搜索了错误消息,但没有点击。我也搜索过Stack Exchange,但没有雪茄。我该如何解决这个问题?

Answers:


66

我也遇到了相同的error: GH007消息,并使用以下内容解决了该问题。

  1. 转到设置您的提交电子邮件地址
  2. 遵循为计算机上的每个存储库设置电子邮件地址
  3. 打开您的GitHub帐户,然后转到设置电子邮件
  4. 选中将我的电子邮件地址设为不公开复选框。
  5. 取消选中“ 阻止公开我的电子邮件的命令行推送”复选框。

但是,这可能会暴露您的电子邮件地址。


24
这是一个解决方案,但实际上可能会公开您的电子邮件地址。如果您有尚未提交的任何提交,则需要取消选中“ 公开我的电子邮件的阻止命令行推送”。然后,您可以推送那些未决的提交。然后,将您的电子邮件地址更新为“不答复”电子邮件地址,然后选中“ 阻止命令行再次显示我的电子邮件”以保持您的地址私密。
SvenAelterman'7

5
@SvenAelterman update your email address to the no-reply email address在哪里?在github设置中还是在本地计算机上某个大概在发送/使用您的私人电子邮件地址的地方?我认为应该将github生成的电子邮件地址直接复制并粘贴到github上,而不是直接单击复选框,这使我感到反常,我因此认为阅读不正确。还是它??
hippietrail

15
要更改电子邮件以进行最新提交,请使用git commit --amend --author="Author Name <email@address.com>"
dspacejs

9
在这里使用@Winfried的解决方案要好得多。不会公开暴露自己的电子邮件地址
康纳

8
同意,正确答案是@Winfried的stackoverflow.com/a/51097104/7872793
Shane

229

启用“阻止显示我的电子邮件的命令行推送”功能时,您还需要配置Git以使用无回复的电子邮件地址。不用担心-这不会影响您的贡献图。所有提交仍将与您的帐户关联。

  1. 打开终端。

  2. 将当前工作目录更改为要配置与Git提交关联的电子邮件地址的本地存储库。

  3. 在GitHub的个人设置→电子邮件中找到GitHub noreply地址。在“ 保留我的电子邮件地址为私人”复选框的描述中提到了此问题。通常,它以唯一标识符加上用户名开头。

  4. 在Git中设置一个电子邮件地址。使用您的GitHub提供的不答复电子邮件地址。

    • 设置计算机上每个存储库的电子邮件地址

      git config --global user.email "{ID}+{username}@users.noreply.github.com"
      
    • 设置单个存储库的电子邮件地址

      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. 在上一次提交时重置作者信息:

    git commit --amend --reset-author
    

    如果您使用自己的私人电子邮件地址进行了多次提交,请参阅此答案

  6. 现在,您可以使用noreply电子邮件地址推送提交,以后的提交也将具有noreply电子邮件地址。

    git push
    

一旦配置了Git,提交将使用您的备用“ noreply”电子邮件地址,所有不被推送的推送将被拒绝。


28
这应该是公认的答案。@ sofia-fernandez的答案可以公开电子邮件地址。有什么办法可以使它更短一些,更易读?您有两个主要部分,唯一的不同是--global国旗
Connor

我在Linux界面上遇到了一些麻烦(使用SourceTree终端,自从使用VI以来已经有一段时间了),-m <comment>如果要避免这种情况,可以添加。
MikeL

2

您可能已启用(或默认情况下现已启用)GitHub的电子邮件隐私功能。

GitHub帮助上的此页面上有详细介绍。

简而言之,您可以启用一个切换(已在您的帐户上启用),以防止在用户是您实际电子邮件地址的情况下进行任何推送。您可以改用匿名地址(或选择禁用该功能)。

这两个选项的详细信息位于同一页面上


谢谢!我对我的电子邮件地址进行了匿名处理,从而解决了该问题!
user156060

使用匿名电子邮件地址是一个很好的解决方案。如果您是在2017年7月18日之前创建的,则可能需要再次进行添加,以添加7个随机数字。
SvenAelterman'7


0
  1. Settings
  2. 点击Emails。滚动到底部。Keep my email addresses private部分将在那里。
  3. 记下那里提到的公共电子邮件ID。
  4. 使用以下命令将您的本地全局电子邮件ID重置为上一步中提到的公共电子邮件ID。
$ git config — global user.email "<user_email_id>"
  1. 还原您最近被阻止的本地提交。
$ git reset --soft HEAD~1 
  1. 重新提交并推动它。它将起作用。

-2

我遇到过同样的问题。我的解决方案在下图中:

GitHub设置


7
您设置为发布电子邮件,向所有刮板等开放,但随后在那里模糊化
Lesto

这与接受的答案(将近一年前发布)有何不同?
Peter Mortensen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.