我已将公共存储库A分叉到B. A有一个名为“dev”的分支,它也在B中,我致力于此。 现在需要对A进行无关的更改,以便我能够从B进行PR。
如何在B中发送新的“dev”分支,以便在从B发送PR之前提交所需的更改?
为了简化,该方案是这样的:
A
B
答案 0 :(得分:0)
当您分叉B,然后克隆B并在本地使用它时,您基本上有3个单独的存储库:A,B和您的本地C。
在本地存储库C中,您可以添加A和B作为"遥控器"。检查git remote -v
以查看您拥有的遥控器。此时我会给他们描述性的名字。你可以rename a remote和add a new remote到你当地的回购,让我们说:A =原产地,B =分叉。
如果您添加这些遥控器并运行git fetch
,您将获得3个不同的分支:dev
(您的本地开发者),origin/dev
(" dev"在A)和fork/dev
(" dev"在B上)。
现在,为了避免混淆,我会给你的本地分支dev
和newdev
更多的描述性名称,以反映你正在做的工作,并使用这些名称。例如,如果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
)。