我有一个小项目,用 Git 维护它的版本控制。术语版本控制在这里指的是您可以想象的最简单的形式:仅在主分支上一个接一个地生成提交,并在一天结束时将所有提交推送到远程。到目前为止,一切都很好。仅拥有一个主分支就足够了,因为始终需要应用程序的最新状态。
然后采购员告诉我他们需要v1.1和v1.2。问题是最新的主提交包含 v1.1 的所有内容和 v1.2 的一些未完成的内容。
我的第一个意图是找到两个“功能包”不同的基本提交。我从该提交中创建了两个分支,并开始一一挑选基础之上的提交。幸运的是,他们并没有太多。这导致两个分支(v1.1 和 v1.2)保留了适当的东西,除了我必须将 v1.2 重新定位到 v1.1 上,因为 v1.1 中的功能在 v1.2 中也需要
毕竟,我有以下历史:
正如你所看到的,我有一个“悬空”分支,它实际上是主分支,但我不需要这些提交,因为它们都被精心挑选到了正确的位置。
问题很简单:如何优雅地处理这种情况(基本上删除那些不必要的提交)而不造成任何伤害,或者是否有任何其他方式可以实现相同的结果?