GIT:合并期间的提交优先级是什么?

Vit*_*ian 5 git branch

我想知道,在这种情况下,在合并期间选择提交的优先级是什么,如下所述。

我有develop分店。

D1 - D2 - D3
Run Code Online (Sandbox Code Playgroud)

然后我release从中创建了分支并添加了一些提交。

D1 - D2 - D3 - R4 - R5
Run Code Online (Sandbox Code Playgroud)

与此同时,添加了一些开发承诺

D1 - D2 - D3 - D6
Run Code Online (Sandbox Code Playgroud)

然后,我release使用以下命令从分支中删除一些提交git rebase -i HEAD~3:

D1 - x - x - R4 - R5
Run Code Online (Sandbox Code Playgroud)

分支如何release合并到developusing git merge --no-ff release?我想要这样的:

D1 - D2 - D3 - R4 - R5 - D6
Run Code Online (Sandbox Code Playgroud)

我是否有可能将分支与提交删除合并?

D1 - x - x - R4 - R5 - D6
Run Code Online (Sandbox Code Playgroud)

我期待关于“幕后”的解释:)

Kar*_*ldt 4

如果您执行了revertin操作release,则会在合并时恢复这些提交。如果你做了,rebase那就不会了。那是因为revert显示您明确删除它们,并将该事实保留在历史记录中。 rebase使得这些提交看起来从未在 中发生过release,因此没有理由merge删除它们。

就优先级而言,无论如何,两个分支都具有同等的优先级。回到分支共有的最后一次提交,如果每个分支以不同的方式更改某些内容,git 会将其显示为合并冲突。不恢复这些提交的唯一原因rebase是因为您重写了历史记录,使其看起来就像它们从未出现在分支中一样。

顺便说一句,你确实意识到你可以在 git 中测试这些东西,无论是在克隆中还是通过小心你的分支,所花的时间可能比提出问题要短?