我想知道,在这种情况下,在合并期间选择提交的优先级是什么,如下所述。
我有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)
我期待关于“幕后”的解释:)
如果您执行了revertin操作release,则会在合并时恢复这些提交。如果你做了,rebase那就不会了。那是因为revert显示您明确删除它们,并将该事实保留在历史记录中。 rebase使得这些提交看起来从未在 中发生过release,因此没有理由merge删除它们。
就优先级而言,无论如何,两个分支都具有同等的优先级。回到分支共有的最后一次提交,如果每个分支以不同的方式更改某些内容,git 会将其显示为合并冲突。不恢复这些提交的唯一原因rebase是因为您重写了历史记录,使其看起来就像它们从未出现在分支中一样。
顺便说一句,你确实意识到你可以在 git 中测试这些东西,无论是在克隆中还是通过小心你的分支,所花的时间可能比提出问题要短?