您的推送会发布私人电子邮件地址错误

时间:2017-05-09 07:17:56

标签: git github

我对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,但没有雪茄。关于如何解决这个问题的任何想法?

7 个答案:

答案 0 :(得分:90)

在启用“阻止命令行公开我的电子邮件”功能时,您还需要将Git配置为使用无回复的电子邮件地址。不用担心-这不会影响您的贡献图。所有提交仍将与您的帐户关联。

  1. 打开终端。

  2. 将当前工作目录更改为要配置与Git提交关联的电子邮件地址的本地存储库。

  3. 在GitHub的Personal Settings → Emails中找到GitHub noreply地址。 将我的电子邮件地址保留为私有复选框的描述中提到了此内容。通常,它以唯一标识符加上您的用户名开头。

  4. 在Git中设置一个电子邮件地址。使用您的GitHub提供的不答复电子邮件地址。

    • 设置计算机上每个 存储库的电子邮件地址

      git config --global user.email "{ID}+{username}@users.noreply.github.com"`
      
    • 设置单个存储库

      的电子邮件地址
      git config user.email "{ID}+{username}@users.noreply.github.com"
      
  5. 在上一次提交时重置作者信息:

    git commit --amend --reset-author
    

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

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

    git push
    

一旦配置了Git,提交将使用您的备用“ noreply”电子邮件地址,而所有不进行的推送将被拒绝。

答案 1 :(得分:50)

我也遇到了相同的error: GH007消息,并使用以下方法解决了这个问题。

  1. 转到https://help.github.com/articles/setting-your-email-in-git/
  2. 按照为计算机上的每个存储库设置电子邮件地址
  3. 打开您的GitHub帐户,然后转到设置>的电子邮件即可。
  4. 选中保持我的电子邮件地址隐私复选框。
  5. 取消选中阻止命令行推送我的电子邮件复选框。
  6. 这可能会暴露您的电子邮件地址。

答案 2 :(得分:6)

  1. 打开 github.com 的电子邮件部分。访问https://github.com/settings/emails

  2. 转到 Keep my email addresses private 部分并记下您的 donotreply 电子邮件 ID。

  3. 打开 git 终端并使用以下命令将您的 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 :(得分:2)

您可能已启用(或默认情况下已启用)github的电子邮件隐私功能。

详情请见this page at github help

简而言之,您可以启用一个切换功能(在您的帐户中启用),以阻止用户是您实际电子邮件地址的任何推送。您可以使用匿名地址(或选择禁用该功能)。

有两个选项的详细信息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)

  1. 转到Settings
  2. 单击Emails。滚动到底部。 Keep my email addresses private部分将在那里。
  3. 记下那里提到的公共电子邮件ID。
  4. 使用以下命令将您的本地全局电子邮件ID重置为上一步中提到的公共电子邮件ID。
$ git config — global user.email "<user_email_id>"
  1. 还原上次被阻止的本地提交。
$ git reset --soft HEAD~1 
  1. 重新提交并推送。会起作用的。

答案 6 :(得分:-2)

我有同样的问题。我的解决方案如下图所示:

GitHub Settings