将 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 成功。
我也试过:
- 将组织成员的默认权限更改为写入和管理
- 删除了我的本地存储库,然后从新组织存储库克隆 URL,然后再次尝试推送
- 在新组织下创建了一个团队,然后使用管理员权限将存储库添加到该团队
但仍然遇到 Permission Denied 问题。
我还需要更改哪些 git、repo、and/or 组织权限?
在您的项目文件夹中,
转到 .git
文件夹并编辑 config
文件。
在 [remote "origin"]
部分下找到 url=
条目
- 将 url 更改为
ssh://git@[new org repo URL]
- 保存配置文件并退出。
现在您可以 git push origin master
并且它应该可以工作
编辑
使用 ssh
是 https
的替代方法。当你克隆你的 repo 时,你应该被要求提供 GitHub 用户名和密码(假设你使用 https
)。如果您启用了双因素身份验证,或者如果您正在访问使用 SAML 单点登录的组织,则必须提供个人访问令牌,而不是输入 HTTPS Git 的密码。如果您使用的是 git.
的旧版本,则可能会发生此错误
切换到 SSH URL 是一种解决方法。
但关于 HTTPS URL,请检查:
- 如果您的帐户有 2FA activated
- 如果您有 Git 凭证助手,请检查 git 配置 credential.helper 的返回值。如果是,remove any GitHub entry,然后再次尝试推送:这将提示您输入 GitHub 凭据(同样,如果您没有 2FA)。
我最近设置了一个 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 成功。
我也试过:
- 将组织成员的默认权限更改为写入和管理
- 删除了我的本地存储库,然后从新组织存储库克隆 URL,然后再次尝试推送
- 在新组织下创建了一个团队,然后使用管理员权限将存储库添加到该团队
但仍然遇到 Permission Denied 问题。
我还需要更改哪些 git、repo、and/or 组织权限?
在您的项目文件夹中,
转到
.git
文件夹并编辑config
文件。在
[remote "origin"]
部分下找到 - 将 url 更改为
ssh://git@[new org repo URL]
- 保存配置文件并退出。
url=
条目
现在您可以 git push origin master
并且它应该可以工作
编辑
使用 ssh
是 https
的替代方法。当你克隆你的 repo 时,你应该被要求提供 GitHub 用户名和密码(假设你使用 https
)。如果您启用了双因素身份验证,或者如果您正在访问使用 SAML 单点登录的组织,则必须提供个人访问令牌,而不是输入 HTTPS Git 的密码。如果您使用的是 git.
切换到 SSH URL 是一种解决方法。
但关于 HTTPS URL,请检查:
- 如果您的帐户有 2FA activated
- 如果您有 Git 凭证助手,请检查 git 配置 credential.helper 的返回值。如果是,remove any GitHub entry,然后再次尝试推送:这将提示您输入 GitHub 凭据(同样,如果您没有 2FA)。