仅从 Github 存储库分叉特定分支

问题描述 投票:0回答:4

假设有一个名为

O
的官方仓库,其分支为
B1
B2
B3

一位用户将其分叉到他的 Github 帐户上,并为自己创建了另一个分支,名为

B4
并且是公开可用的。

我也分叉了相同的官方存储库,但我想分叉该用户的

B4
分支,而不影响我的原始副本。

我无法再次分叉整个官方存储库,因为我已经为自己创建了几个自定义分支。

那么,如何将特定分支分叉到我的 Github 存储库上?

git github fork
4个回答
13
投票

您可以将他的分支拉入本地 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

9
投票

将该用户的存储库添加为工作目录的“远程存储库”:

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
作为起点。


5
投票

虽然 @keelerm 提供的答案是正确的,但由于该答案中遵循的命名约定,可能会导致一些混乱。

假设您要克隆其分支的用户的 github 用户名是

Naruto
。因此,基本上,
Naruto
已经从官方存储库
B4
创建了您想要在系统上使用的分支
O

  1. 首先,检查您是否已添加

    Naruto
    的遥控器
    git remote -v
    。如果您看到类似于
    https://github.com/Naruto/O (fetch)
    https://github.com/Naruto/O (push)
    的内容,则您已经添加了遥控器。跳至步骤 3。

  2. 在这一步中,我们将添加

    Naruto
    O
    分支的遥控器,以便我们可以从中获取所有信息。选择任何您将用来指代遥控器的方便名称。为了便于说明,我将使用
    Kyuubi
    。使用此命令:
    git remote add Kyuubi https://github.com/Naruto/O

  3. 现在,您需要从

    Naruto
    的存储库中获取更改。使用此命令:
    git fetch Kyuubi

  4. 在此步骤中,我们将从

    myB4
    Naruto
    创建自己的分支,名为
    B4
    。使用此命令:
    git checkout -b myB4 Naruto/B4

  5. 如果您也需要这个

    myB4
    分支也立即反映在您的 Github 中,并且具有相同的名称,请使用以下命令:
    git push origin myB4:myB4

就是这样。现在,您在

myB4
的分叉存储库
Naruto
中拥有一个名为
O
的分支,并且您的分支
myB4
包含与
Naruto
B4
相同的信息。


0
投票

如果存储库有多个工作分支,您可以使用以下命令克隆存储库的特定分支

git clone -b <branch name> <repository url>

如果运行此命令,分支将直接克隆到终端的工作目录中

© www.soinside.com 2019 - 2024. All rights reserved.