假设我有一个回购分支,我的回购有三个分支:
branch_1
已离开upstream/master
,但branch_1_a
已离开branch_1
(即,它是通过git checkout -b branch_1_a branch_1
创建的)
如果我想为branch_1
中的更改创建拉取请求以及branch_1_a
中的更改拉取请求,拉取请求如何在此方案中起作用。我是否首先要创建PR以将branch_1_a
合并到branch_1
?或者我为branch_1
创建PR,将其合并到upstream/master
,然后为branch_1_a
创建PR?或者我可以为每个人同时掌握一个PR来进入掌握(虽然我不能在脑海中记住这是如何工作的)?
答案 0 :(得分:2)
首先,git
并不知道任何"拉取请求" (这是gitlab,github,bitbucket等服务的概念)。
相反,git
知道合并。
一个拉取请求只是告诉负责人你希望git merge
与另一个人分支的方法。
第二,分支实际上只是你给一组补丁的标签。
现在,回答你的问题:是的,完全有可能合并分支和子分支。
在最简单的情况下,branch_1_a
包含branch_1
的全部内容(即branch_1
中的所有提交也在branch_1_a
中)。
如果您第一次合并 branch_1_a
,那么合并branch_1
将成为无操作(因为您的master
现已包含branch_1
)
如果您第一次合并 branch_1
,那么合并branch_1_a
只会添加使branch_1
与branch_1_a
不同的其他补丁。
答案 1 :(得分:0)
假设您引用的分支存在于某些托管的git服务(如github或bitbucket)上,您应该能够在本地克隆中执行branch_1_a
到branch_1
的合并。 fork然后将branch_1
推送到远程fork repo,之后您可以针对最初分叉的repo打开branch_1
的PR。