尽管我已将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
。
现在是固定的。
答案 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)
正如您在更新中指出的那样,您现在有两个单独的远程存储库。约定要有两个遥控器:origin
和upstream
。
您的叉子是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