【问题标题】:Permission denied on `git push` after transferring repo to new Github organization将 repo 转移到新的 Github 组织后,“git push”的权限被拒绝
【发布时间】:2018-06-09 18:50:23
【问题描述】:

我最近设置了一个公共存储库,构建了一个简单的应用程序,一切都按预期运行。

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

然后我更新了我本地的remote

git remote set-url [new org repo URL]

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

我进行了更多编辑(以更新自述文件中的存储库链接)并执行git push origin master 将更改推送到新存储库。

得到:

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 成功返回。

我也试过了:

  • 将组织成员的默认权限更改为写入和管理员权限
  • 删除了我的本地 repo,然后从新的 org repo URL 克隆,然后再次尝试推送
  • 在新组织下创建了一个团队,然后将 repo 添加到具有管理员权限的团队

但仍然出现 Permission Denied 问题。

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

【问题讨论】:

  • 您是否将自己或您参与的团队添加到相应存储库的协作者/团队中?如果是,您为相应存储库分配给您的个人资料/团队的权限级别是多少?
  • @rufer7 是的,我确实尝试过。我已经用这些细节更新了问题。

标签: git github github-organizations


【解决方案1】:

在您的项目文件夹中,

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

  • [remote "origin"]部分下找到url=entry

  • 将网址更改为ssh://git@[new org repo URL]
  • 保存配置文件并退出。

现在你可以使用git push origin master 了,它应该可以工作了

编辑

使用ssh 可以替代https。当你克隆你的仓库时,你应该被要求提供一个 GitHub 用户名和密码(假设你使用了https)。如果您启用了双重身份验证,或者您正在访问使用 SAML 单点登录的组织,则必须提供个人访问令牌,而不是输入您的 HTTPS Git 密码。如果您使用的是旧版本的 git,可能会出现此错误。

【讨论】:

  • 为我工作。你知道为什么需要这种改变吗?
  • 从命令行尝试 SSH:git remote set-url origin <paste the 'Clone with SSH' path> 它对我有用
【解决方案2】:

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

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

【讨论】:

  • 我确实启用了 2FA,但我认为它或其他安全措施是罪魁祸首。
  • @BrettDeWoody 使用 2FA,您需要一个 PTA(个人访问令牌)作为密码:github.com/settings/tokens
猜你喜欢
  • 2016-10-30
  • 2012-08-12
  • 2012-12-29
  • 2013-11-08
  • 2017-04-30
  • 1970-01-01
  • 2017-10-21
  • 2013-01-20
  • 1970-01-01
相关资源
最近更新 更多