拒绝“ git push”

时间:2019-11-02 15:07:46

标签: git

尽管我已将ssh密钥添加到我的git帐户中,但是当我在远程仓库中运行git push时,我的权限被拒绝了。

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC9TP2gLF0== mahmood@mahmood.com
$ git push -u origin mahmood
Username for 'https://github.com': mahmoodn
Password for 'https://mahmoodn@github.com':
remote: Permission to gunrock/gunrock.git denied to mahmoodn.
fatal: unable to access 'https://github.com/gunrock/gunrock/': The requested URL returned error: 403

不是我不是贡献者或我自己的git帐户的远程回购上的“权限被拒绝”吗?

更新:

好。我必须先通过网络将回购分叉到我的帐户中,然后将原点设置为git remote set-url origin ssh://git@github.com/mahmoodn/gunrock.git,然后再设置为git push -u origin mahmood

现在是固定的。

2 个答案:

答案 0 :(得分:4)

这里有几个问题。

首先,即使您可能已经添加了SSH密钥,但看起来您仍在使用HTTPS遥控器。 (您可以使用git remote -v查看所有的遥控器。)如果要使用SSH,则应将URL从https://github.com/gunrock/gunrock.git更改为ssh://git@github.com/gunrock/gunrock.git。您可以使用git remote set-url origin ssh://git@github.com/gunrock/gunrock.git来做到这一点。

第二,您似乎正在尝试推送到存储库gunrock/gunrock。如果是这种情况,则您无权访问它。如果您想尽力而为,那么您极有可能想推向ssh://git@github.com/mahmoodn/gunrock.git。您可以如上所述设置原点。

答案 1 :(得分:0)

正如您在更新中指出的那样,您现在有两个单独的远程存储库。约定要有两个遥控器:originupstream

您的叉子是origin

git remote set-url origin ssh://git@github.com/mahmoodn/gunrock.git

或等价物

git remote set-url origin git@github.com:mahmoodn/gunrock.git

通过{p>随时了解gunrock/gunrock.git中的更改

git remote add upstream https://github.com/gunrock/gunrock.git

现在,远程跟踪分支机构upstream/master记录父存储库所在的主存储库。用

更新
git fetch upstream

git fetch --all

我建议保持母版保持清洁,并始终与upstream/master保持同步。

git fetch --all
git checkout master
git merge --ff-only upstream/master