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

时间:2013-03-26 17:48:58

标签: git github fork

假设有一个名为O的官方仓库,其分支B1B2& B3

一位用户将其分配到他的Github帐户,为自己创建了另一个名为B4的分支,并且是公开的。

我也分叉了相同的官方仓库,但我想在不影响原始副本的情况下分叉该用户的B4分支。

由于我为自己制作了几个自定义分支,我无法再次分发整个官方回购。

那么,我如何将特定分支分支到我的Github仓库?

3 个答案:

答案 0 :(得分:5)

您可以将他的分支拉入您当地的git仓库,然后将其推送到您的GitHub托管仓库。

首先,将遥控器添加到其他用户的GitHub页面

git remote add other-user http://github.com/otheruser/repo

然后在您的仓库中进行本地结账。

git checkout -b B4 other-user/B4

最后,将该分支推送到GitHub上托管的repo。

git push origin B4:B4

答案 1 :(得分:4)

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

git remote add someuser git://github.com/someuser/somerepo.git

完成后,您需要从该用户的存储库中获取更改。稍后,您可以随时执行此操作,而不会影响本地仓库中的任何其他内容。

git fetch someuser

并将用户的B4分支到您自己的B5

git checkout -b B5 someuser/B4

也就是说,使用-b作为起点,创建一个名为B5的新分支(someuser/B4)。

答案 2 :(得分:0)

尽管@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的{​​{1}}分支的远程对象,以便从中获取所有信息。选择您将用来引用遥控器的任何方便的名称。出于说明目的,我将使用O。使用以下命令:Kyuubi

  3. 现在,您需要从git remote add Kyuubi https://github.com/Naruto/O的存储库中获取更改。使用以下命令:Naruto

  4. 在这一步中,我们将根据git fetch Kyuubi的{​​{1}}创建一个名为myB4的分支。使用以下命令:Naruto

  5. 如果您也需要使用相同的名称立即在您的Github中反映此B4分支,请使用以下命令:git checkout -b myB4 Naruto/B4

就是这样。现在,您从myB4的分支存储库git push origin myB4:myB4中获得了一个名为myB4的分支,并且分支Naruto包含与O的{​​{1} }。