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

我已经在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)

我现在该怎么办?

104423 次浏览

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

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

远程存储库已配置为不允许您提交将暴露您的个人电子邮件地址的提交。例如,在GitHub中,你已经从块命令行推送,暴露我的电子邮件复选框选中了启用该

Block command line pushing that expose my email .

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

相反,这样做:

  1. 你可以看到你的个人电子邮件地址,这是你在Git中提交时默认使用的:

    git config --global user.email
    
  2. Find your GitHub noreply address in your GitHub's Personal Settings → Emails. It's mentioned in the description of the Keep my email address private checkbox. Usually, it starts with a unique identifier, plus your username:

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

    Keep my email address private < / p >

  3. 修改全局用户电子邮件地址设置为你的GitHub无回复地址:

    git config --global user.email {ID}+{username}@users.noreply.github.com
    
  4. Reset the author information on your last commit:

    git commit --amend --reset-author
    

    如果你的私人电子邮件地址有多次提交,请参见这个答案

  5. 现在你可以使用无回复的电子邮件地址推送提交,以后的提交也将使用无回复的电子邮件地址。

    git push
    
  1. 只要登录github.com,点击你的个人资料
  2. 进入设置
  3. 现在点击左侧导航面板上的“电子邮件”
  4. 然后搜索“保密我的电子邮件地址”
  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电子邮件设置中取消你的Keep my email addresses private

2。如果你想隐藏你的电子邮件库,GitHub在GitHub电子邮件设置中提供了一个无回复的电子邮件地址

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

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

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

或者你可以使用你的公共电子邮件或商业电子邮件作为你的存储库。像m****@business.com

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

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

git reset --soft HEAD~1

再次尝试push您的存储库