从之前分叉的存储库创建新分支

时间:2018-05-19 13:33:16

标签: git github git-fork

我已将公共存储库A分叉到B. A有一个名为“dev”的分支,它也在B中,我致力于此。 现在需要对A进行无关的更改,以便我能够从B进行PR。

如何在B中发送新的“dev”分支,以便在从B发送PR之前提交所需的更改?

为了简化,该方案是这样的:

A

  • dev的

B

  • dev(需要等待新dev中的更改合并到A dev中)
  • newdev(将在合并B dev之前合并到A dev)

1 个答案:

答案 0 :(得分:0)

当您分叉B,然后克隆B并在本地使用它时,您基本上有3个单独的存储库:A,B和您的本地C。

在本地存储库C中,您可以添加A和B作为"遥控器"。检查git remote -v以查看您拥有的遥控器。此时我会给他们描述性的名字。你可以rename a remoteadd a new remote到你当地的回购,让我们说:A =原产地,B =分叉。

如果您添加这些遥控器并运行git fetch,您将获得3个不同的分支:dev(您的本地开发者),origin/dev(" dev"在A)和fork/dev(" dev"在B上)。

现在,为了避免混淆,我会给你的本地分支devnewdev更多的描述性名称,以反映你正在做的工作,并使用这些名称。例如,如果dev实现了 foo 功能,并且newdev将实现功能 bar ,则可以执行以下操作:

# make "foo" branch to refer locally to the "dev" state on B
git branch foo fork/dev 
# make "bar" branch to refer locally to the "dev" state on A
git branch bar origin/dev

现在你可以git checkout bar实现你的功能,用git push fork将它推到fork(又名B),转到github并制作你的PR。该界面将允许您选择源分支(bar)和目标分支(origin/dev)。