Jer*_*oen 14 git atlassian-sourcetree
在从Hg转移到Git的同时,我也在提交消息创作.我发现关于Git的行长度的常见建议是:
我正在使用SourceTree完成当前Git的大部分工作.我意识到上面的1和2只是典型的建议而不是规则.但是,无论他们的状态如何,我都想让SourceTree帮助我同时遵循这两项建议.
为此,我启用了以下设置:
☑使用固定宽度字体提交消息
☑在[72]个字符的commet消息中显示列指南
但是,这仅为第一个指南提供了有限的支持(主题行<50个字符).如果我将"72"更改为"50",我的问题就会被逆转(上面的建议2变得更难以遵循).在SourceTree中是否有任何方法可以改善这种情况,以便它可以帮助我提供这两条建议?或者当我的直觉指示我这样做时,我是否仍然坚持计算角色?
50字符的建议实际上来自git
man
于网页commit
。
这man
页上写着:
虽然不是必需的,但最好以一个简短的(少于 50 个字符)行总结更改开始提交消息,然后是一个空行,然后是更全面的描述。提交消息中直到第一个空行的文本被视为提交标题,并且该标题在整个 Git 中使用。例如,
git-format-patch
(1) 将提交转换为电子邮件,它使用主题行上的标题和正文中提交的其余部分。
然而 72 个字符的限制在git
. 这个约定起源于git
终端用户,因为git log
不会在单词边界处打断长行,而只是继续将文本打印到屏幕上,使其在 80 个字符或终端的任何宽度后自动中断。为了获得良好的格式,我们的想法是选择 72 个字符,因为提交消息缩进了 4 个空格,如果您在末尾留下另外 4 个空格以在屏幕上获得对称填充,您将获得80 - 4 * 2 = 72
.
我的建议如下:
推理:
由于 50/72 规则非常普遍,许多工具(软件、Web 服务等)都假设它们将提交消息缩短到第一行换行符或前 50 个字符(无论先出现什么)都可以。因此,如果您没有在提交消息的前 50 个字符中添加任何合理的内容,您将不会在这些工具中看到有用的提交消息。即使您不使用这些工具中的任何一个,在同一项目上工作的其他一些人也可能会这样做,这将确保这些人在他们的工具中获得良好的提交消息。
至于 72 个字符的限制,请参见上文,这仅用于在终端窗口中显示提交消息,但所有其他工具(如应用程序和 Web 服务)将正确且很好地在单词边界上断开长行,因此如果您不坚持对于 72 个字符的限制,使用任何这些工具的人都不会遇到任何问题,因此该限制远不如第一行的 50 个字符限制那么重要。对于终端用户,尽管换行有点难看,但提交消息仍然是可读的。
恕我直言git
,修复终端中提交消息的打印是开发人员的任务,而不是git
解决该限制的人的任务,如果终端只有 40 个字符的宽度呢?然后它仍然会使用 72 个字符出现丑陋的中断。谁定义了今天的终端必须是 80 个字符宽,因为这曾经是操作系统 pre-UI 区域中计算机的文本控制台宽度?在单词边界上打破文本并不难。