小编典典

如何从原始 repo 的克隆推送到我的 fork?

all

我在 GitHub 上创建了myrepo另一个存储库(我们称它为)的 fork(我们称它为)。orirepo后来,我克隆了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,我没有写权限?


阅读 77

收藏
2022-08-27

共1个答案

小编典典

默认情况下,当您克隆存储库时

  • 位于https://github.com/original/orirepo.git,
  • 其当前分支被称为master,

然后

  • 结果克隆的本地配置仅列出了一个名为 的远程origin,它与您克隆的存储库的 URL 相关联;
  • 克隆中的本地master分支设置为 track origin/master

因此,如果您不修改克隆的配置,Git 会解释

git push

作为

git push origin master:origin/master

换句话说,git push尝试将您的本地master分支推送到master驻留在远程存储库上的分支(被您的克隆称为origin)。但是,您不能这样做,因为您没有对该远程存储库的写入权限。

你需要

  1. 通过运行重新定义origin要与您的 fork 关联的遥控器

    git remote set-url origin https://github.com/RemiB/myrepo.git
    
  2. 或者,如果您想保留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

反而。

2022-08-27