我在 GitHub 上创建了myrepo另一个存储库(我们称它为)的 fork(我们称它为)。orirepo后来,我克隆了orirepo.
myrepo
orirepo
git clone https://github.com/original/orirepo.git
我修改了大约 20 个文件,然后我进行了更改并提交了
git add git commit
然而,当我试图推动
git push
我收到了这个错误:
remote: Permission to original/orirepo.git denied to mylogin. fatal: unable to access 'https://github.com/original/orirepo.git/': The requested URL returned error: 403
我知道我犯了一个错误:我应该克隆我的 fork 而不是orirepo,但现在为时已晚。我怎么能推到我的 fork 而不是 to origin/orirepo,我没有写权限?
origin/orirepo
默认情况下,当您克隆存储库时
https://github.com/original/orirepo.git
master
然后
origin
origin/master
因此,如果您不修改克隆的配置,Git 会解释
作为
git push origin master:origin/master
换句话说,git push尝试将您的本地master分支推送到master驻留在远程存储库上的分支(被您的克隆称为origin)。但是,您不能这样做,因为您没有对该远程存储库的写入权限。
你需要
通过运行重新定义origin要与您的 fork 关联的遥控器
git remote set-url origin https://github.com/RemiB/myrepo.git
或者,如果您想保留origin遥控器的原始定义,请定义一个与您的 fork 关联的新遥控器(myrepo此处称为 ):
git remote add myrepo https://github.com/RemiB/myrepo.git
然后你应该能够master通过运行将你的本地分支推送到你的 fork
git push myrepo master
如果你想告诉 Gitgit push应该推送myrepo而不是origin从现在开始,你应该运行
git push -u myrepo master
反而。