如何使用 SourceTree 正确压缩提交?

How to properly squash commits using SourceTree?

我们使用 Git 作为我们的源代码控制系统,我喜欢定期提交我的代码。这确实意味着当我准备好推送到共享存储库时,我已经创建了很多无意义的提交,我想在推送之前将它们压缩掉。

使用 SourceTree 应该是一件简单的事情,但我一直 运行 关注并非所有选定的提交都被压缩在一起的问题。让我展示一些我使用样本回购和一些签入所做的事情的图片:

我点击第一个勾选'rebase children interactively'

所有签到都会出现弹出窗口:

在这个弹出窗口中,我单击 'fifth' 签入并用前 3 次击打壁球,直到屏幕如下所示:

你认为一切都很好,但是当点击 'ok' 按钮时,这就是我最终得到的结果:

为什么哦为什么不在最终结果中包含 'Second' 提交?从弹出窗口的外观来看,您会认为这也包括在内。我可以再次做同样的事情来获得第二个,但我无法理解为什么它会这样工作或者如何一次性压扁它们。

如有任何帮助,我们将不胜感激。

这是 SourceTree 中的错误,请参阅 this bug report。根据错误历史记录,它已于 2021 年 5 月修复关闭。