我对Github / VCS很新。
当我尝试在Github上共享我的项目时,收到以下错误消息。
Can't finish GitHub sharing process
Successfully created project 'myproject' on GitHub, but initial push failed:
remote: error: GH007: Your push would publish a private email address.
failed to push some refs to 'https://github.com/me/myproject.git'
我用Google搜索了错误消息,没有点击。我也搜索过stackexchange,但没有雪茄。关于如何解决这个问题的任何想法?
答案 0 :(得分:90)
在启用“阻止命令行公开我的电子邮件”功能时,您还需要将Git配置为使用无回复的电子邮件地址。不用担心-这不会影响您的贡献图。所有提交仍将与您的帐户关联。
打开终端。
将当前工作目录更改为要配置与Git提交关联的电子邮件地址的本地存储库。
在GitHub的Personal Settings → Emails中找到GitHub noreply地址。 将我的电子邮件地址保留为私有复选框的描述中提到了此内容。通常,它以唯一标识符加上您的用户名开头。
在Git中设置一个电子邮件地址。使用您的GitHub提供的不答复电子邮件地址。
设置计算机上每个 存储库的电子邮件地址
git config --global user.email "{ID}+{username}@users.noreply.github.com"`
设置单个存储库
的电子邮件地址git config user.email "{ID}+{username}@users.noreply.github.com"
在上一次提交时重置作者信息:
git commit --amend --reset-author
如果您使用私人电子邮件地址进行了多次提交,请参见this answer。
现在您可以使用noreply电子邮件地址推送提交,以后的提交也将具有noreply电子邮件地址。
git push
一旦配置了Git,提交将使用您的备用“ noreply”电子邮件地址,而所有不进行的推送将被拒绝。
答案 1 :(得分:50)
我也遇到了相同的error: GH007
消息,并使用以下方法解决了这个问题。
这可能会暴露您的电子邮件地址。
答案 2 :(得分:6)
打开 github.com 的电子邮件部分。访问https://github.com/settings/emails。
转到 Keep my email addresses private
部分并记下您的 donotreply
电子邮件 ID。
打开 git 终端并使用以下命令将您的 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 :(得分:2)
您可能已启用(或默认情况下已启用)github的电子邮件隐私功能。
简而言之,您可以启用一个切换功能(在您的帐户中启用),以阻止用户是您实际电子邮件地址的任何推送。您可以使用匿名地址(或选择禁用该功能)。
有两个选项的详细信息at the same page。
答案 4 :(得分:2)
有一个解决方案,不暴露您的电子邮件。发生错误是因为您在 git config --(global|system|local) user.email
中配置了自己的电子邮件地址。
如果同一电子邮件是您的 Github 电子邮件,并且您选择了将电子邮件设为私有的选项,则 git 会标记此错误。
有用的是,Github 为您提供了一个无回复电子邮件地址,您可以将其用于命令行操作。只需在您的 Github 个人资料中检查您的电子邮件设置。
您可以简单地删除或撤消使用 user.name 完成的提交,并在再次提交更改之前为
设置另一封电子邮件git config --(global|system|local) user.email "<no-reply-email-here>"
。
现在,当您尝试将更改推送到远程存储库时,错误应该消失了。
答案 5 :(得分:0)
Settings
Emails
。滚动到底部。 Keep my email addresses private
部分将在那里。$ git config — global user.email "<user_email_id>"
$ git reset --soft HEAD~1
答案 6 :(得分:-2)
我有同样的问题。我的解决方案如下图所示: