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

Meaning of the GitHub message: push declined due to email privacy restrictions

我已经接受并合并了 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)

我现在该怎么办?

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

尝试取消选中 email settings 中的 "Block command line pushes that expose my email" 框,然后再次按下。

远程存储库已配置为不允许您推送会泄露您的个人电子邮件地址的提交。例如,在 GitHub 中,您检查了 Block command line pushes that expose my email checkbox to enable this.

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

相反,这样做:

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

    中的提交
    git config --global user.email
    
  2. 找到你的GitHub noreply address in your GitHub's Personal Settings → Emails将我的电子邮件地址保密复选框的描述中提到了它。通常,它以唯一标识符开头,加上您的用户名:

    {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
    

    如果您使用私人电子邮件地址多次提交,请参阅 this answer

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

    git push
    
  1. 只需转至 github.com 并点击您的个人资料
  2. 转到设置
  3. 现在点击左侧导航面板上的'Email'
  4. 并搜索字段 'Keep my email addresses private'
  5. 请取消选中此选项
  6. 现在请再次检查,我想你的问题现在已经解决了。

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

git config --global user.email ""

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

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

使用 Github 桌面解决了我的问题。

  1. 打开 github.com 的 Emails 部分。访问 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

您可以使用 3 个选项:

1。您可以在 GitHub E-mail Settings.

中取消选中 Keep my email addresses private

2。如果您想隐藏 e-mail 您的存储库,GitHub 在 GitHub e-mail 设置

中提供一个 noreply e-mail 地址

Because you have email privacy enabled, will be used for account-related notifications as well as password resets.

34661293+aslancan32@users.noreply.github.com will be used for web-based Git operations, e.g., edits and merges.

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

3- 或者您可以使用您的 public 电子邮件或企业电子邮件作为您的存储库。喜欢m****@business.com

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

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

git reset --soft HEAD~1 

再次尝试 push 您的存储库