GitHub消息的含义:由于电子邮件隐私限制,推送被拒绝


201

我已经在github上接受并合并了一个Pull Request,现在我不能再提取我的提交了。

消息是:

! [remote rejected] master -> master (push declined due to email privacy restrictions)
error: failed to push some refs to 'git@github.com:FranckFreiburger/vue-resize-sensor.git'


git did not exit cleanly (exit code 1) (3838 ms @ 12/04/2017 21:23:11)

我现在应该怎么办 ?


1
我发现的文档页面:help.github.com/en/github/...
塞巴斯蒂安NORR

Answers:


398

远程存储库已配置为禁止您推送将显示您的个人电子邮件地址的提交。例如,在GitHub中,您已选中“ 阻止公开我的电子邮件的命令行”复选框以启用此功能

阻止显示我的电子邮件的命令行推送

您当然可以取消选中该设置,但是它将向世界各地的所有人公开您的私人电子邮件地址,因为任何有权访问您的存储库的人都可以阅读作者信息。

相反,请执行以下操作:

  1. 您可以看到您的个人电子邮件地址,默认情况下,该电子邮件地址用于您在Git中的提交:

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

    {ID}+{username}@users.noreply.github.com

    保持我的电子邮件地址不公开

  3. 将全局用户电子邮件地址设置更改为您的GitHub noreply地址:

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

    git commit --amend --reset-author

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

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

    git push

4
不,这就像我的魅力一样,也许你忘了一步,@ adamczi。这应该是公认的答案,因为它说明了两种可能的解决方案。
艾奥娜

4
谢谢,猜想我可能在第2步中犯了一个错误。值得注意的是,您应该在那里明确遵循@Virtlink的说明,因为将电子邮件设置为以外的其他字符<your_uname>@users.noreply.github.com(如我自己设置为None)将导致不显示您的提交。个人资料页面上的图表。
adamczi

3
我有一个类似的神秘问题。我的错是去git commit --amend --author "first last me@users.noreply.github.com",似乎不喜欢那样。您确实需要user.email完全像上面一样重设配置参数。干杯!
msanford

6
Virtlink上面提供的步骤4对于克服该错误至关重要。我已经在配置中将user.email设置为使用我的无回复电子邮件地址,但是Push命令仍然返回有关发布私人电子邮件的令人沮丧的错误。一旦我修改了我要推送的提交,就允许了推送。
teaman

3
您可能只想更改单个存储库的电子邮件地址。这个答案很有帮助,但我还必须参考github的帮助文章:设置单个存储库的电子邮件地址
gfullam

146

这可能是由于新的GitHub设置导致阻止显示您的电子邮件地址的命令行推送而引起的。

尝试在电子邮件设置中取消选中“阻止命令行公开我的电子邮件”框,然后再次进行推送。


20
取消选中此选项会显示我的私人电子邮件地址吗?
弗兰克·弗赖堡

14
是的,这就是它的作用,但是如果您已将提交推送到存储库,则您已经公开了电子邮件地址。即使Github不会显示您的电子邮件地址,但是如果我克隆您的存储库,我也可以看到它们,而这就是防止新推的东西会阻止的东西。
Lasse V. Karlsen

10
这是一个有问题的解决方案。至少要提一下,这会将您的电子邮件地址公开给全世界。
kovac


1

我通过以下方法解决了错误:

git config --global user.email ""

这只是将我的电子邮件设置为空白(空字符串)。现在,我通过以下方式在各个项目中设置电子邮件:

git config user.email "myemail@domain.com"


0
  1. 只需转到github.com并单击您的个人资料
  2. 前往设置
  3. 现在单击左侧导航面板上的“电子邮件”
  4. 并搜索“将我的电子邮件地址设为不公开”字段
  5. 请取消选中此选项
  6. 现在请再次检查,我认为您的问题现在已经解决。

2
可以,但是会公开您的私人电子邮件地址。如果您担心隐私,请参阅其他解决方案。
kaznovac

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.