现实世界中的Git分支命名约定

2020-05-03 05:48:45

Hacker News上一篇博文中关于功能分支命名的对话激起了我对这个话题的看法。这看起来似乎是一个微不足道的话题,但正如谚语所说:

在计算机科学中只有两件难事:缓存失效和命名。--菲尔·卡尔顿(Phil Karlton)。

前面提到的博文概述了如何命名特性分支的约定;在前面加上来自问题跟踪器的ID,并使用连字符作为分支所涉及的特性的简短描述的分隔符。例如:

这是可行的,但在现实世界中,功能分支很少处理像计费模块这样大的项目。在开发时,我们通常处理此类功能的较小的子任务。当然,理想情况下,每个子任务都应该有问题跟踪器ID,但它们通常没有。与同一功能相关的分支通常如下所示:

鉴于这种情况,GitHub和GitLab都采用在提交中引用问题作为连接到问题跟踪器的解决方案。

那么,功能分支的命名取决于它们的目的:它们应该是短暂的、面向任务的,并且在它们重新合并时被删除。他们的目的是敏捷。

虽然我同意分支机构名称的烤肉串形式,但作为开发人员,我们应该继续自由地命名我们的分支机构,因为我们认为合适。功能分支应该保持轻量级,不应该用来创建另一个流程。