【发布时间】:2013-03-22 05:48:08
【问题描述】:
我已经分叉了一个远程仓库,它有 3 个分支
- 主人
- 一个
- b
但团队向遥控器添加了新分支。 而目前的分支是
- 主人
- 一个
- b
- c
- d
- e
但我的叉子只有 3 个分支。我应该如何更新我的 fork 以包含远程 repo 中存在的所有分支(包括新添加的分支)。
【问题讨论】:
我已经分叉了一个远程仓库,它有 3 个分支
但团队向遥控器添加了新分支。 而目前的分支是
但我的叉子只有 3 个分支。我应该如何更新我的 fork 以包含远程 repo 中存在的所有分支(包括新添加的分支)。
【问题讨论】:
将原始 repo 作为第二个远程添加到本地 repo:
git remote add parentrepo <url>
从中获取所有分支:
git fetch parentrepo
鉴于你所说的,git branch -a 应该给出(假设你有 origin 作为你的 fork 的别名,因为它是克隆时默认的)
* master
origin/master
origin/a
origin/b
parentrepo/a
parentrepo/b
parentrepo/c
parentrepo/d
parentrepo/e
您可以像对 origin 一样从 parentrepo 本地分支任何远程分支,和/或将它们直接推送到 origin。
【讨论】:
现在,涉及两个步骤。从远程存储库中获取新添加的分支并将这些分支推送到您的 fork。
要从远程存储库中获取新添加的分支,说原始的,这样做
1. git remote add original {url_to_remote}
2. git fetch original
看到这个Pull branches from remote repository SO Link
现在,我们已经在本地仓库中提取了远程分支。接下来我们要将这些分支发送到我们的 fork。
1. git push -u origin {branch_name} // Origin is your fork
【讨论】:
为了在团队移除远程分支而您没有更新时保护自己,我会执行 2 个命令:
git remote prune origin
和
git fetch origin
【讨论】: