310

我已经在 GitHub 上接受并合并了一个拉取请求,现在我无法再拉取我的提交了。

消息是:

! [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)

我现在该怎么办?

4

7 回答 7

646

远程存储库已配置为不允许您推送会泄露您的个人电子邮件地址的提交。例如,在 GitHub 中,您已选中Block command line pushes that expose my email复选框以启用此功能。

阻止暴露我的电子邮件的命令行推送

虽然您当然可以取消选中该设置,但它会将您的私人电子邮件地址暴露给世界上的每个人,因为任何有权访问您的存储库的人都可以读取作者信息。

相反,请执行以下操作:

  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
    
于 2017-05-21T16:08:26.283 回答
155

这可能是由于新的 GitHub 设置阻止了暴露您的电子邮件地址的命令行推送。

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

于 2017-04-12T19:35:30.470 回答
11
  1. 打开Emailsgithub.com 的部分。访问https://github.com/settings/emails
  2. 转到Keep my email addresses private部分并记下您的donotreply电子邮件 ID。
  3. 使用以下命令打开git terminal并将您的donotreply电子邮件 ID 设置为您的电子邮件 ID:
git config --global user.email "<your_donotreply_email_id"
  1. 恢复您最近未能推送到存储库的本地提交(使用您的私人电子邮件)。
git reset --soft HEAD~1 
  1. 暂存并推送这些提交
git add .
git commit –m "<commit_message>"
git push
于 2021-03-20T08:16:34.163 回答
5

您可以使用 3 个选项:

1 . 您可以在 GitHub E-mail Settings 中取消选中Keep my email addresses private

2 . 如果您想隐藏您的存储库的电子邮件,GitHub 在 GitHub 电子邮件设置中提供一个 noreply 电子邮件地址

因为您启用了电子邮件隐私,所以将用于与帐户相关的通知以及密码重置。

34661293+aslancan32@users.noreply.github.com 将用于基于 Web 的 Git 操作,例如编辑和合并。

git config --global user.email "<your-noreply-github-email>"

3-或者您可以将您的公共电子邮件或企业电子邮件用于您的存储库。喜欢m****@business.com

git config --global user.email "<your-public-email>"

应用到您的设置后,我建议运行重置标头代码:

git reset --soft HEAD~1 

重试push您的存储库

于 2021-08-16T09:12:36.667 回答
3

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

git config --global user.email ""

这只是将我的电子邮件设置为空白(一个空字符串)。我现在在个人项目中设置我的电子邮件:

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

于 2020-03-19T10:16:31.590 回答
2
  1. 只需访问 github.com 并单击您的个人资料
  2. 前往设置
  3. 现在点击左侧导航面板上的“电子邮件”
  4. 并搜索“将我的电子邮件地址保密”字段
  5. 请取消选中此选项
  6. 现在请再次检查,我认为您的问题现在已经解决。
于 2020-03-18T09:34:58.460 回答
1

使用 Github Desktop 解决了我的问题。

于 2020-09-28T10:23:54.830 回答