Github:将上游分支导入fork

pok*_*oke 158 git github

我有一个origin来自upstreamgithub上的project()的fork().现在上游项目添加了一个新分支,我想导入我的fork.我怎么做?

我尝试检查远程并在其上创建一个分支,但是将分支配置git push为尝试推送到的分支upstream:

git checkout upstream/branch
git checkout -b branch
Run Code Online (Sandbox Code Playgroud)

编辑

也许这不清楚,但我想将分支添加到我的本地存储库,所以我可以将它推送到origin(我的fork)git push.因为上游存储库通常是只读的,所以你可以将其分配给贡献.

所以我基本上想要检查一个不存在的分支,origin其内容将从中拉入upstream.

urs*_*rei 239

  1. 确保您已将新的上游分支拉入本地仓库:

    • 首先,确保您的工作树是干净的(提交/存储/恢复任何更改)
    • 然后,git fetch upstream检索新的上游分支
  2. 创建并切换到新上游分支本地版本(newbranch):

    • git checkout -b newbranch upstream/newbranch
  3. 当您准备将新分支推送到原点时:

    • git push -u origin newbranch

-u开关设置跟踪到指定的远程(在本例中,origin)

  • 我相信`git fetch upstream`在第一步是更好的选择,因为`git pull upstream`需要在`git remote add ...`之后为`upstream`做更多的动作. (6认同)
  • @sureshvv这可能是因为在执行任何操作之前您需要对名为 **upstream** 的上游存储库进行远程引用。如果您不这样做,请按照以下方式添加:**git remote add upper your_git_upstream_repository_url.git**。如果您需要对此问题进行澄清,请[阅读本文](http://stackoverflow.com/a/9257901/4905310)。 (3认同)
  • 是! `push -u`做了伎俩.谢谢! (2认同)

小智 22

从用户界面:

在您的分支中,转到“分支”,单击“新分支”。在那里您可以选择源 - 您的分叉或上游。选择上游并选择您要“导入”的分支。创建具有相同名称的分支。完毕。

  • 正是我来这里寻找的+1 (2认同)

Sve*_*ito 7

我会用

git checkout -b <new_branch> upstream/<new_branch>
Run Code Online (Sandbox Code Playgroud)


Ian*_*ill 5

我也遇到了这个问题,谷歌把我带到了这里。然而,这些解决方案并没有奏效。我的问题是,当我添加上游时,它设置了我的 git 配置以只获取 master,而不是所有分支。例如它看起来像这样

[remote "somebody"]
        url = git@github.com:somebodys/repo.git
        fetch = +refs/heads/master:refs/remotes/upstream/master
Run Code Online (Sandbox Code Playgroud)

如下编辑 .git/config 解决了我的问题

[remote "somebody"]
        url = git@github.com:somebodys/repo.git
        fetch = +refs/heads/*:refs/remotes/upstream/*
Run Code Online (Sandbox Code Playgroud)