我最近设置了一个公共(public)存储库,构建了一个简单的应用程序,一切都按预期运行。
最终,我决定该 repo 应该由一个公共(public)组织管理,以帮助鼓励贡献。所以我创建了一个新组织,然后将 repo 转移到新组织。我被设置为该组织的所有者(也是唯一的成员)。
然后我更新了我本地的remote
:
git remote set-url [new org repo URL]
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
git pull origin master
成功返回。
我也试过:
- 将组织成员的默认权限更改为写入和管理
- 删除我的本地仓库,然后从新的组织仓库 URL 克隆,然后再次尝试推送
- 在新组织下创建了一个团队,然后使用管理员权限将代码库添加到该团队
但仍然遇到 Permission Denied 问题。
我还需要更改哪些其他 git、repo 和/或 org 权限?
最佳答案
在你的项目文件夹中,
转到
.git
文件夹并编辑config
文件。在
[remote "origin"] 部分下找到
url=
条目- 将 url 更改为
ssh://git@[new org repo URL]
- 保存配置文件并退出。
现在你可以执行 git push origin master
并且它应该可以工作
编辑
使用 ssh
是 https
的替代方法。在克隆存储库时,应该会要求您提供 GitHub 用户名和密码(假设您使用了 https
)。如果您启用了双因素身份验证,或者如果您正在访问使用 SAML 单点登录的组织,则必须提供个人访问 token ,而不是输入 HTTPS Git 的密码。如果您使用的是旧版本的 git,则可能会发生此错误。
关于git - 将 repo 转移到新的 Github 组织后,权限在 `git push` 上被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48020748/