我有一个问题,我找不到答案在Git专业书。
假设我在master上创建了master,做了一些更改,完成并推动了拉请求。我非常肯定这个分支在某个时候会被合并到origin/master中,但是我希望在提交的变更的基础上创建基于branchA的branchB,以便进一步开发。
问题是,当branchB将被合并时,branchA会发生什么?
我的看法是,如果拉请求批准者合并branchA,那么我的branchB拉请求将包含来自branchA的提交,而diff将有效地显示branchA和branchB之间的更改。
但是,如果尚未合并,则对branchB的拉请求将显示来自两个分支的更改,并由审批者将branchA和branchB合并,或者只合并branchB。
请纠正我的推理
发布于 2019-08-07 10:57:24
你有过这样的情况:
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的拉请求,取决于您将看到的工具,或者看到一个空的diff,或者可以将该拉请求标记为已完成(我似乎还记得Bitbucket for Enterprise使用这种方法),因为A中的所有更改都已经成功地合并了。
因此,总结一下:
TL;DR:您的B分支并没有受到真正的影响,但是它和主人之间的差异最初也将包括来自A的所有更改,但是在完成A的PR之后,它将只显示B和Master之间的差异,而不再显示来自A的更改,因为它们已经被合并了。因此,你关于“我的看法”的一段就是重点。
发布于 2019-08-07 10:36:33
我的看法是,如果拉请求批准者合并branchA,那么我的branchB拉请求将包含来自branchA的提交,而diff将有效地显示branchA和branchB之间的更改。
这取决于如何设置BranchB的拉请求。如果您选择将其合并到master中,而BranchA尚未合并,您将看到所有的更改。但是,您也可以创建拉请求,表示将BranchB合并到BranchA,然后只看到从BranchB到BranchA的更改。
您可以始终更改某个分支将合并到哪个分支。因此,假设首先设置拉请求,将BranchB合并到BranchA中,以便只看到这个差异。如果BranchA被合并为master,则可以将BranchB重基或将主模块合并为BranchB。
https://stackoverflow.com/questions/57392328
复制相似问题