[英]Github: Import upstream branch into fork
我在 github 上有一个项目( upstream
)的一个分支( origin
)。现在上游项目添加了一个新分支,我想导入到我的分支中。 我怎么做?
我尝试检查远程并在其上创建一个分支,但是配置分支的方式是git push
试图推送到upstream
的方式:
git checkout upstream/branch
git checkout -b branch
也许这还不清楚,但我想将分支添加到我的本地存储库,这样我就可以通过git push
将它推送到origin
(我的叉子)。 因为上游存储库通常是只读的,你 fork 它来贡献。
所以我基本上想检查origin
上一个不存在的分支,其内容将从upstream
拉入。
确保您已将新的上游分支拉入本地仓库 :
git fetch upstream
以检索新的上游分支 创建并切换到新上游分支 ( newbranch
)的本地版本 :
git checkout -b newbranch upstream/newbranch
当您准备将新分支推送到原点时 :
git push -u origin newbranch
-u开关设置跟踪到指定的远程(在此示例中, origin
)
我会用
git checkout -b <new_branch> upstream/<new_branch>
我也遇到了麻烦,谷歌把我带到了这里。 然而,解决方案不起作用。 我的问题是当我添加我的上游时,它将我的git配置设置为仅获取master,而不是所有分支。 这看起来像这样
[remote "somebody"]
url = git@github.com:somebodys/repo.git
fetch = +refs/heads/master:refs/remotes/upstream/master
编辑.git / config如下修复了我的问题
[remote "somebody"]
url = git@github.com:somebodys/repo.git
fetch = +refs/heads/*:refs/remotes/upstream/*
我有一个稍微复杂的场景,我已经在我的分支中定义了一个upstream
(来自规范回购)但需要从不同的分支中签出一个分支。 要完成这项工作,过程略有不同。 这是我最终得到的配置:
[remote "origin"]
url = git@github.com:<your_user/org>/<repo>.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
[remote "upstream"]
url = git@github.com:<upstream_user>/<repo>.git
fetch = +refs/heads/*:refs/remotes/upstream/*
[remote "other_user"]
url = git@github.com:<other_user>/<repo>.git
fetch = +refs/heads/*:refs/remotes/<other_user>/*
现在您也可以从<other_user>
分支中签出一个分支。
git fetch <other_user> <branch>
git checkout -b <branch> <other_user>/<branch>
这将为您提供一个派生自 <other_user> 分支的本地分支。
要推送该本地分支,我必须使用我的推送命令来具体说明。
git push origin <branch>
以下步骤适用于我(假设上游分支名称是branch
):
$ git fetch upstream
$ git checkout branch
$ git push origin
--track
?
git branch --track branch upstream/branch
从用户界面:
在分支 go 到 Branches 中,单击“New Branch”。 在那里你会 select 来源 - 无论是你的叉子还是上游。 Select 上游和 select 您要“导入”的分支。 创建同名分支。 完毕。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.