将 repo 转移到新的 Github 组织后,对 `git push` 的权限被拒绝

Permission denied on `git push` after transferring repo to new Github organization

我最近设置了一个 public 存储库,构建了一个简单的应用程序,一切都按预期工作。

最终我决定该回购应该在一个 public 组织下进行,以帮助鼓励贡献。所以我创建了一个新组织,然后将回购转移到新组织。我被设置为该组织的所有者(也是唯一的成员)。

然后我更新了我本地的 remote 使用:

git remote set-url [new org repo URL]

A git remote -v 显示新的组织存储库 URL。

我又做了一些编辑(以更新 README 中 repo 的链接)并 git push origin master 将更改推送到新的 repo。

得到:

remote: Permission to [new org repo URL] denied to [user].
fatal: unable to access 'https://[user]@[new org repo URL]': The requested URL returned error: 403

A git pull origin master returns 成功。

我也试过:

但仍然遇到 Permission Denied 问题。

我还需要更改哪些 git、repo、and/or 组织权限?

在您的项目文件夹中,

  • 转到 .git 文件夹并编辑 config 文件。

  • [remote "origin"]

  • 部分下找到 url= 条目
  • 将 url 更改为 ssh://git@[new org repo URL]
  • 保存配置文件并退出。

现在您可以 git push origin master 并且它应该可以工作

编辑

使用 sshhttps 的替代方法。当你克隆你的 repo 时,你应该被要求提供 GitHub 用户名和密码(假设你使用 https)。如果您启用了双因素身份验证,或者如果您正在访问使用 SAML 单点登录的组织,则必须提供个人访问令牌,而不是输入 HTTPS Git 的密码。如果您使用的是 git.

的旧版本,则可能会发生此错误

切换到 SSH URL 是一种解决方法。
但关于 HTTPS URL,请检查:

  • 如果您的帐户有 2FA activated
  • 如果您有 Git 凭证助手,请检查 git 配置 credential.helper 的返回值。如果是,remove any GitHub entry,然后再次尝试推送:这将提示您输入 GitHub 凭据(同样,如果您没有 2FA)。