Rebuck and merge合并策略在Bitbucket Server上有什么作用?

时间:2019-01-31 14:03:47

标签: git-rebase bitbucket-server fast-forward

我正在探索Bitbucket Server上可能的合并策略,而一个策略引起了我的注意:“重新设置并合并” rebase + merge --no-ff

我了解到,大多数有关合并策略的争论都围绕着重新建立基础 vs 进行。这种合并策略似乎是合并的基础。它是否正确?与仅重新设置基础或仅合并相比,这将带来什么优势?

2 个答案:

答案 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。