在git rebase -i中允许空提交的用例是什么?



我在某处读到,因为git 2.26--keep-empty是默认的git rebase -i。但我想不出它的用例。当我做git交互式重基时,我总是想删除空的提交。留着它有什么意义?

有几个原因,但它们大多是深奥的。

我在为Git开发时所做的一件事是,我可能需要在另一个序列上重新设置几个序列,但能够单独检测它们,这是在分支的基础上放置一个空标记commit,并带有消息:BRANCHNAME。然后,我可以通过引用空提交将第一个系列重新基于新的主分支,通过引用空提交将第二个系列重新基于第一个系列,以此类推。

行为的改变是无意的。主后端从基于am的后端(它总是删除空提交)更改为基于合并的后端(它没有这种行为),因此当后端更改时,行为也会在无意中更改。请注意,实际上在其他所有方面,基于合并的后端都更好。