假设有一个名为
O
的官方仓库,其分支为 B1
、B2
和 B3
。
一位用户将其分叉到他的 Github 帐户上,并为自己创建了另一个分支,名为
B4
并且是公开可用的。
我也分叉了相同的官方存储库,但我想分叉该用户的
B4
分支,而不影响我的原始副本。
我无法再次分叉整个官方存储库,因为我已经为自己创建了几个自定义分支。
那么,如何将特定分支分叉到我的 Github 存储库上?
您可以将他的分支拉入本地 git 存储库,然后将其推送到您的 GitHub 托管存储库。
首先,将远程添加到其他用户的 GitHub 页面
git remote add other-user http://github.com/otheruser/repo
然后在您的存储库中对该分支进行本地结账。
git checkout -b B4 other-user/B4
最后,将该分支推送到 GitHub 上托管的存储库。
git push origin B4:B4
将该用户的存储库添加为工作目录的“远程存储库”:
git remote add someuser https://github.com/someuser/somerepo.git
完成此操作后,您需要从该用户的存储库中获取更改。稍后,您可以随时执行此操作,而不会影响本地存储库中的其他任何内容。
git fetch someuser
并将该用户的
B4
分支到您自己的 B5
:
git checkout -b B5 someuser/B4
也就是说,创建一个名为
-b
的新分支 (B5
),使用 someuser/B4
作为起点。
虽然 @keelerm 提供的答案是正确的,但由于该答案中遵循的命名约定,可能会导致一些混乱。
假设您要克隆其分支的用户的 github 用户名是
Naruto
。因此,基本上,Naruto
已经从官方存储库B4
创建了您想要在系统上使用的分支O
。
首先,检查您是否已添加
Naruto
的遥控器
git remote -v
。如果您看到类似于 https://github.com/Naruto/O (fetch)
和 https://github.com/Naruto/O (push)
的内容,则您已经添加了遥控器。跳至步骤 3。
在这一步中,我们将添加
Naruto
的O
分支的遥控器,以便我们可以从中获取所有信息。选择任何您将用来指代遥控器的方便名称。为了便于说明,我将使用 Kyuubi
。使用此命令:git remote add Kyuubi https://github.com/Naruto/O
现在,您需要从
Naruto
的存储库中获取更改。使用此命令:git fetch Kyuubi
在此步骤中,我们将从
myB4
的 Naruto
创建自己的分支,名为 B4
。使用此命令:git checkout -b myB4 Naruto/B4
如果您也需要这个
myB4
分支也立即反映在您的 Github 中,并且具有相同的名称,请使用以下命令:git push origin myB4:myB4
就是这样。现在,您在
myB4
的分叉存储库 Naruto
中拥有一个名为 O
的分支,并且您的分支 myB4
包含与 Naruto
的 B4
相同的信息。
如果存储库有多个工作分支,您可以使用以下命令克隆存储库的特定分支
git clone -b <branch name> <repository url>
如果运行此命令,分支将直接克隆到终端的工作目录中