将回购转移到新的Github组织后,在'git push`上拒绝许可

时间:2017-12-29 10:01:10

标签: git github github-organizations

我最近设置了一个公共回购,构建了一个简单的应用程序,一切都按预期工作。

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

然后我使用以下内容更新了我本地的remote

git remote set-url [new org repo URL]

git remote -v显示新的组织回购网址。

我做了一些编辑(更新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成功返回。

我也尝试过:

  • 将组织成员的默认权限更改为“写入和管理”
  • 删除了我的本地仓库,然后从新的org repo网址克隆,然后再次尝试推送
  • 在新组织下创建了一个团队,然后使用管理员权限
  • 将该回购添加到该团队

但仍然会获得权限拒绝问题。

我还需要进行哪些其他git,repo和/或org权限更改?

2 个答案:

答案 0 :(得分:2)

在项目文件夹中

  • 转到.git文件夹并修改config文件。

  • url=

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

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

修改

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

答案 1 :(得分:2)

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

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