我已经分叉了一个远程仓库,它有 3 个分支
- 掌握
- 一种
- b
但是该团队向遥控器添加了新的分支。目前的分支机构是
- 掌握
- 一种
- b
- C
- d
- e
但我的叉子只有 3 个分支。我应该如何更新我的 fork 以包含远程仓库中存在的所有分支(包括新添加的分支)。
将原始 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
您可以从 parentrepo 本地分支任何远程分支,就像对 origin 所做的那样,和/或将它们直接推送到 origin。
现在,涉及两个步骤。从远程存储库中获取新添加的分支并将这些分支推送到您的 fork。
要从远程存储库中获取新添加的分支,说原始的,请执行
1. git remote add original {url_to_remote}
2. git fetch original
现在,我们已经在本地 repo 中提取了远程分支。接下来,我们要将这些分支发送到我们的 fork。
1. git push -u origin {branch_name} // Origin is your fork
只是为了在团队删除远程分支并且您没有更新时保护自己,我会执行 2 个命令:
git remote prune origin
和
git fetch origin