我有一个问题,在Git Pro书中找不到答案。
假设我在branchA
上创建了master
,做了一些更改,提交并推送了请求请求。
我很确定该分支将在某个时候合并到origin/master
,但是我想在branchB
上创建branchA
,以便根据提交的更改进行进一步的开发。
branchB
将会被合并时,branchA
会发生什么?
我的看法是,如果合并请求branchA
的合并请求合并,那么我的branchB
合并请求将包含来自branchA
的提交,而diff将仅显示branchA
和branchB
但是,如果尚未合并,则对branchB
的拉取请求将显示两个分支的更改,并且由批准者合并branchA
然后合并branchB
或仅合并{{1} }。
请更正我的推理
答案 0 :(得分:1)
您遇到这种情况:
branch-A
v
1---2---3---4
/
O---O---O---O
^
master
然后您这样做:
branch-A branch-B
v v
1---2---3---4---5---6---7---8
/
O---O---O---O
^
master
总结当前状态:
如果您现在决定完成对A的提取请求,那么您将遇到以下情况:
branch-A branch-B
v v
1---2---3---4---5---6---7---8
/ \
O---O---O---O---------------X
^
master
其中X现在是合并提交。此后,无需进行其他更改或操作,如果您再次访问B的拉取请求,它现在(仍然,仍然)将显示B与master之间的差异,但是现在它仅包含提交5-8。
如果相反,您首先完成了对B的拉取请求,那么您最终将获得以下结果:
branch-A branch-B
v v
1---2---3---4---5---6---7---8
/ \
O---O---O---O-------------------------------Y
^
master
如果您现在重新访问对A的请求请求,则根据工具的不同,您将看到一个空的差异,或者该请求可以被标记为已完成(我想起来,Bitbucket for Enterprise使用此方法),因为所有更改A中的已成功合并。
所以总结一下:
TL; DR :您的B分支并没有真正受到影响,但是它与主分支之间的差异最初还将包括A的所有更改,但是在完成A的PR后,它只会在B和master之间显示差异,并且不再显示来自A的更改,因为它们已被合并。您关于“我的看法”的段落就这样出现了。
答案 1 :(得分:0)
我的看法是,如果请求请求批准人合并了branchA,则我的 branchB拉取请求将已经包含来自branchA和 diff将仅显示分支A和分支B之间的变化
这取决于您如何设置BranchB的请求请求。如果您选择将其合并到master
中,而BranchA尚未合并,您将看到所有更改。但是,您还可以创建将合并BranchB到BranchA的合并请求,然后只看到从BranchB到BranchA的更改。
您始终可以将分支合并到哪个分支。因此,假设首先设置拉取请求以将BranchB合并到BranchA中,以仅查看该差异。如果将BranchA合并为masterB,则可以重新设置BranchB的基础或将master合并为BranchB。