我正在探索Bitbucket Server上可能的合并策略,而一个策略引起了我的注意:“重新设置并合并” rebase + merge --no-ff
我了解到,大多数有关合并策略的争论都围绕着重新建立基础 vs 进行。这种合并策略似乎是和合并的基础。它是否正确?与仅重新设置基础或仅合并相比,这将带来什么优势?
答案 0 :(得分:1)
人们通常将“重新设定基础并合并”策略称为“重新设定基础”。它也仅指示接下来将发生什么。使用<ais-instant-search :index-name="indexName" :search-client="searchClient">
<ais-configure :query="query" />
<ais-hits>
<div slot="item" slot-scope="{ item }">
<h2>{{ item }}</h2>
</div>
</ais-hits>
</ais-instant-search>
时,它将进行合并提交。没有它,您将获得一个快进,因此两个引用都将指向同一提交,这掩盖了您已经完全分支的事实。
将--no-ff
合并到B
上:
A
将A *---* A *---*---*
\ merge -> \ /
B *---* B *---*
重置为B
:
A
将(A *---* A *---*
\ rebase -> \
B *---* B *---*
)--no-ff
变基并合并到B
上:
A
将(A *---* A *---* A *---*-------*
\ rebase -> \ merge -> \ /
B *---* B *---* --no-ff B *---*
)--ff
变基并合并到B
上:
A
答案 1 :(得分:0)
Bitbucket Server文档对Rebase,merge(rebase + merge --no-ff)和Rebase,forward-forward(rebase + merge –ff-only)合并策略进行了说明。
“此操作未修改PR分支”
根据此语句,在您的示例中,分支B中的提交的commitSHA将保持不变。当在分支A中应用时,Bitbucket将为相同的提交分配新的commitSHA。