我们在DeepSource使用git分支来组织正在进行的工作,以确保软件交付保持有效。如果你今天使用git,你很有可能在使用著名的git-flow或最近的GitHub flow。这两种工作流程都广泛地依赖于有效地使用分支--而命名一个新的分支是许多开发者所苦恼的事情。

一个一致的分支命名惯例是代码审查最佳实践的一部分,除了使用静态分析工具外,还可以使合作和审查你的代码的人的生活变得更加容易。
有很多公约和格式被推荐,但有时遵循这些公约本身就会变得很痛苦。在此,我们概述了一个简单的git分支命名惯例,它易于遵循,并照顾到大多数常见的使用情况。
1.在分支名中使用问题跟踪器ID
大多数惯例都建议在分支名称前加上前缀,如hotfix-,feature-,chore-, 或其他一些任务分类的变体。实际上,如果你使用的是问题追踪器,无论如何你都会在问题追踪器中标记任务的类别--此外还有更多额外的背景。使用这些分类前缀,至少看起来是多余的,最糟糕的是在命名分支时需要额外的决策。用问题跟踪器的ID来引导是很方便的,需要最少的思考,而且有更多的优势。
-
在问题追踪器中创建的问题,在大多数情况下,是用来追踪团队的进展的。将相关的工作分支与每个任务关联起来变得很容易--特别是当每个开发人员同时在处理许多问题时。
-
在问题跟踪器中,搜索和过滤要容易得多。一旦你知道了你的问题编号,使用本地git树中的自动完成功能找到该分支就变得很容易。
➜ super-secret-project git:(master) git checkout 72
722-add-billing-module -- Apply suggestions from code review
720-submodules-rc 722-add-billing-module 723-fix-highlighting 728-fix-homepage-css
2.添加任务的简短描述符
虽然在大多数情况下,使用问题跟踪器ID本身就足以识别一个项目中的唯一分支,但也有可能需要一些更细微的差别。例如,一个问题可能需要多个分支,可能由不同的人完成。
在问题ID后面使用简短的、可操作的任务描述。这使得分支的名称可以被识别,与众不同,并且在你没有问题编号的情况下容易搜索到。确保描述词简明扼要,但又有足够的描述性,让你知道该分支发生了什么。
3.使用连字符作为分隔符
这有点见仁见智,但连字符是分支名称中很好的分隔符。你也可以使用下划线,_ 。但关键是要保持一致。
就是这样--只有这三条规则要牢记。没有复杂的命名方案或规则可循,使团队中的每个人都能轻松地保持一致。命名事物有时会很困难,有简单的启发式方法很有帮助。在一个几乎每个人都在使用某种问题跟踪的世界里,这种方法使git分支的命名尽可能地简单。