问题在于:我刚刚对本地存储库进行了更改,并且想推送到 Github 上的原点(特别是 gh-pages)。之前,我一直在使用另一个 Github 帐户,因此我更改了我的“user.name”和“user.email”以匹配我现在尝试推送到的帐户。
截至目前,我收到 403 错误并且权限被拒绝。
我缺少哪一步?离开我发现的其他答案,似乎更改我的 user.name 和 user.email 应该可以解决问题。我需要更改 git config 中的设置才能使其正常工作吗?
欢迎任何帮助、建议或建设性批评,我只是渴望让它发挥作用!
通过运行
git config --global credential.helper
检查您的 git 安装是否使用 OSX 钥匙串来存储凭据。如果返回 osxkeychain
那么它就是。
来自 https://help.github.com/articles/updating-credentials-from-the-osx-keychain/:
如果您在 GitHub 上更改密码或用户名,则需要更新 git-credential-osxkeychain 帮助程序中保存的用户名和密码。
- 在 Finder 中,搜索“钥匙串访问”应用程序。
- 在“钥匙串访问”中,搜索 github.com。
- Keychain 中的 GitHub 密码条目查找 github.com 的“互联网密码”条目。
- 相应地编辑或删除条目。
您可能需要检查的另一件事是您正在推送的 github 帐户是否使用双因素身份验证?如果您是,那么您可能需要从这里:
启用 2FA 时
如果您启用了双因素身份验证,则必须创建一个 身份验证时用作密码的个人访问令牌 带有 HTTPS URL 的命令行上的 GitHub。
例如,当您使用 Git 命令访问存储库时 使用 git clone、git fetch、git pull 或 git push 等命令的行 对于 HTTPS URL,您必须提供您的 GitHub 用户名和 当提示输入用户名和密码时,个人访问令牌。
有关设置双因素身份验证的更多信息,请参阅 “通过双因素身份验证为您的帐户添加安全性。”
我发现的最简单的解决方案只需 2 个步骤:
搜索 Windows 凭据并按 Enter 键,确保输入正确或使用设置找到此选项。
有一些已保存的默认登录信息,请单击 git、github,然后单击“从保管库中删除”。
现在,下次您尝试在 github 上推送某些内容时,它会执行身份验证,然后您就完成了
即使在创建 PAT 并使用它而不是密码后,我仍然遇到此错误。我尝试了以下方法:
将 git origin 从 https:// 更改为 ssh 打开终端 / cmd 并 cd 到克隆的存储库目录并 运行:
git Remote set-url origin [电子邮件受保护]:
/
这当然是我的错误,但将 github.com 添加到了受信任的主机
无法验证主机“github.com(140.82.121.3)”的真实性 已确立的。 ED25519钥匙指纹是 SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU。这把钥匙不是 以任何其他名称为人所知。您确定要继续连接吗 (是/否/[指纹])?是 警告:永久添加“github.com” (ED25519) 到已知主机列表。 [电子邮件受保护]:权限 被拒绝(公钥)。致命:无法从远程存储库读取。
请确保您拥有正确的访问权限和存储库 存在。
之后我将远程 url 更改回 HTTPS,之后就能够成功使用 PAT 进行身份验证。我在使用正确的 PAT 获得 403 几个小时后意外发现了这一点。