我已经接受并合并了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)
我现在该怎么办?
答案 0 :(得分:262)
远程存储库已配置为禁止您推送会泄露您的个人电子邮件地址的提交。例如,在GitHub中,您已将Block command line pushes that expose my email复选框选中enable this。
虽然您当然可以取消选中该设置,但它会将您的私人电子邮件地址公开给世界上的每个人,因为任何有权访问您的存储库的人都可以阅读作者信息。
相反,这样做:
您可以看到您的个人电子邮件地址,默认情况下用于您在Git中的提交:
git config --global user.email
在您的GitHub GitHub noreply address中找到您的Personal Settings → Emails。它在保持我的电子邮件地址隐私复选框的说明中提到。通常,它以唯一标识符和用户名开头:
{ID}+{username}@users.noreply.github.com
将全局用户电子邮件地址设置更改为您的GitHub noreply地址:
git config --global user.email {ID}+{username}@users.noreply.github.com
重置上次提交时的作者信息:
git commit --amend --reset-author
如果您的私人电子邮件地址有多次提交,请参阅this answer。
现在您可以使用noreply电子邮件地址推送提交,并且将来的提交也将具有noreply电子邮件地址。
git push
答案 1 :(得分:97)
这可能是因为new GitHub setting会阻止公开您的电子邮件地址的命令行推送。
尝试取消选中email settings中的“阻止命令行推送我的电子邮件”复选框,然后重新推送。
答案 2 :(得分:3)
Emails
部分。访问https://github.com/settings/emails。Keep my email addresses private
部分并记下您的 donotreply
电子邮件 ID。git terminal
并使用以下命令将您的 donotreply
电子邮件 ID 设置为您的电子邮件 ID:git config --global user.email "<your_donotreply_email_id"
git reset --soft HEAD~1
git add .
git commit –m "<commit_message>"
git push
答案 3 :(得分:1)
答案 4 :(得分:1)
我通过以下方法解决了错误:
git config --global user.email ""
这只是将我的电子邮件设置为空白(空字符串)。现在,我将电子邮件设置为以下项目:
git config user.email "myemail@domain.com"
答案 5 :(得分:0)
取消选中阻止命令行推送我的电子邮件,然后尝试从命令行推送代码。
答案 6 :(得分:0)
使用Github Desktop解决了我的问题。