【问题标题】:re-sync fork with parent git repo与父 git repo 重新同步 fork
【发布时间】:2014-03-04 22:52:34
【问题描述】:

我已经在 github 上创建了一个 repo,而我从这个 repo 中又添加了一个新分支。我想将该分支放入我的本地分支并进行处理。之后我想提交到那个分支(在我的本地分支中),然后向原始父仓库提交拉取请求。

当我尝试这样做时最终发生的情况如下

  1. 从父仓库分叉
  2. 然后父 repo 创建一个新分支
  3. 在我的本地机器上我这样做: git remote add parent https://github.com/PARENT/parentProj.git
  4. git pull parent [新分支名称]
  5. 现在我尝试:git checkout [新分支名称],我得到“分支 [新分支名称] 设置为跟踪来自父级的远程分支 [新分支名称]。 切换到新分支“[新分支名称]”
  6. 我认为我很好,但我不是。现在,当我进行更改并 git push 时,我得到“远程:PARENT/parentProj.git 的权限拒绝 [我]。”

我相信它正在尝试推送到父项目的新分支,而不是我的分支。

如何让它让我推送到我的 fork 上的新分支,以便我随后可以发出拉取请求?

【问题讨论】:

    标签: git github


    【解决方案1】:

    当您执行 git branch -avv 时,Git 会显示您的本地分支“连接到”哪些远程分支。

    $> git branch -avv
    * master                a1b2c3d [origin/master] Some commit message here
    

    [origin/master] 部分意味着如果您更新此分支并尝试 git push,它将尝试推送。

    在您的情况下,我建议重新分配该遥控器的 URL,但仅限于 push。似乎你总是想从父分支fetchpush 到你的本地,对吗?如果是这种情况,那么试试这个:

    git remote set-url --push origin git@github.com:YourUser/theRepository.git
    

    这样,当你拉取时,它来自父叉子,当你推送时,它进入你自己的叉子。然后,您使用 pull-request 机制将您的代码从本地 fork 获取到父级。

    【讨论】:

    • 这正是我想要的,但不完全是。真的,我只想告诉我的叉子重新从父母那里得到所有的东西。提交、分支等。就好像我把我的整个叉子都炸掉了然后重做一样。这是我发现让所有内容正确同步的唯一方法,但希望有更好的方法。
    【解决方案2】:

    原来我应该搜索更多(或者更清楚要搜索什么)。这个答案解决了我的问题:Github: Import upstream branch into fork

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 2016-07-16
      • 2019-07-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      相关资源
      最近更新 更多