重新启动分支是个好主意吗?

Is restarting a branch a good idea?

在我开发的软件中,我有一个主要的稳定分支(defaultprod),我从中开发新的想法。

我认为通常的做法是启动一个分支,对其进行处理,然后放弃它(保持原样,关闭它,删除它)或合并到默认分支。

我的很多开发都是小测试,我很乐意在 dev 分支中进行这些测试,我最终会将其合并到 default,然后在 dev 中以新想法重新开始].

这种方法有重大缺点吗?

我看到的主要内容是如果我想放弃 "bad" 想法该怎么办。我可以让现有的 dev 挂起,开始一个新的 dev 分支,最后一个分支有几个 HEAD - 这听起来不是个好主意(但客观上我知道为什么)。

简而言之:重新启动一个分支,总的来说,是个好主意,并且可能有多个 HEAD 因为这是一个真正的问题?

拥有多个头完全没有问题。此外,如果您认为它们应该从众目睽睽之下消失,您还可以关闭(因此本质上是隐藏)旧的、被遗弃的头部。

相反,我会为 每个 我编码的新想法或功能启动一个单独的负责人,这样我就可以同时遵循不同的想法。它还允许将它们分别合并到您的主线中。

我会将您提议的行动方案描述为具有非线性 dev 分支,即,它可能具有从未合并到主线中的未命名头部。 (从 dev 重复合并工作到 default 并不一定会使其在这个意义上成为非线性)。 Mercurial 管理这样的配置没有问题,所以从技术上讲它没有问题。

但是如果您觉得这会使您的历史难以浏览,您可能想要使用一组更丰富的分支名称。一个折衷的解决方案是在 dev 中进行所有实验,但使用标签来区分和识别不同的分支头。当我搁置一个想法(或永远放弃它)时,我经常这样做。