首页 > 解决方案 > 错误“远程:错误:GH007”即使我使用相同的用户名和电子邮件

问题描述

有很多帖子涵盖了这一点。但是,所有这些都与使用不同名称/更改名称的推送有关。

我已卸载凭据并再次安装。而且,自从每当我尝试从我的存储库中提取时,它都会要求我输入用户名和密码。

我想设置我的用户名和电子邮件,所以我使用了

git config --global user.name "name"
git config --global user.email

当我检查使用

git --list

我看到了正确的姓名和电子邮件。

问题是,每当我从自己的 GitHub 帐户中提取时,它仍然会询问我的用户名和密码,并在我尝试推送时抛出错误 GH007。

我已关注您的推送会发布私人电子邮件地址错误,并且主电子邮件地址似乎是正确的。

标签: gitgithub

解决方案


其中一些是错误“您的推送将发布私人电子邮件地址”的副本,因此请参阅 GH007 错误。

请注意,GitHub 的 Git 抱怨一些现有的提交——对他们来说是新的,但已经存在于你自己的 Git 存储库中的提交——包含如果他们接受它们就会发布的电子邮件地址。

同时,这里有几件事要知道。Git 在提交的内容和您如何对其他 Git 安装进行身份验证之间有非常明显的区别。事实上,身份验证根本不是由 Git 本身完成的,而是由第三方软件完成的:ssh、curl / libcurl、macOS 钥匙串、Windows 凭据等。

当您设置user.nameanduser.email时,这些只控制未来的提交。现有的提交不会被更改——事实上,现有的提交永远不会被更改;如果你做了一个你不喜欢的,你最终会制造一个新的和改进的以避免使用它,使用它而不是坏的。该git commit命令构建一个新的提交,当它完成时,它user.name用作名称和user.email电子邮件地址。这基本上就是他们所做的一切。

为了将您的 Git 安装连接到另一个 Git 安装,以便传输提交(将您的新提交发送给他们,或从他们那里获取新提交),您必须验证自己,以便其他 Git 安装知道您是您,不是别人。此身份验证从不使用您的user.nameuser.email设置。它使用什么取决于您的主机操作系统以及您用于连接到其他 Git 安装的协议。如果您使用https://URL,请查看您的操作系统的 Git 安装如何显示用户名和密码。如果您使用ssh://URL,您的 Git 安装将使用您的计算机为Secure Shell提供的任何方法来提供密钥。看https://www.ssh.com/ssh/key/一般背景。


推荐阅读