在 SourceTree 中将提交消息主题保持在 50 个字符以下

问题描述 投票:0回答:2

从 Hg 迁移到 Git 时,我也在温习提交消息的创作。我发现有关 Git 行长度的常见建议是:

  1. 第一行/主题行最多 50 个字符;
  2. 后续行最多 72 个字符。

我当前的大部分 Git 工作都是使用 SourceTree 完成的。我意识到上面的 1 和 2 只是典型的建议,而不是规则。然而,无论它们的状态如何,我都希望 SourceTree 能够帮助我同时遵循这两个建议。

为此,我启用了以下设置:

☑ 对提交消息使用固定宽度字体
☑ 在评论消息中显示 [72] 个字符的列指南

但是,这仅为第一个指南提供了有限的支持(主题行< 50 chars). If I change the "72" to "50" my problem would be reversed (and advice 2 above becomes harder to follow). SourceTree 中是否有任何方法可以改善这种情况,以便它可以帮助我提供两个建议?或者我是否坚持在直觉时计算字符?感觉指示我这样做?

git atlassian-sourcetree
2个回答
12
投票

50 个字符的推荐实际上来自

git
man
页面的
commit

这个
man
页面内容如下:

虽然不是必需的,但最好以以下方式开始提交消息 一个简短的(少于 50 个字符)行总结了更改, 接下来是一个空行,然后是更详尽的描述。 处理提交消息中直到第一个空行的文本 作为提交标题,该标题在整个 Git 中使用。例如,

git-format-patch
(1) 将提交转换为电子邮件,并使用标题 主题行和正文中的其余提交。

但是

git
中没有提及 72 个字符的限制。此约定起源于
git
终端用户,因为
git log
不会在单词边界处断开长行,而是继续将文本打印到屏幕上,导致文本在 80 个字符或终端的任何宽度后自动断开。为了获得良好的格式,我们的想法是选择 72 个字符,因为提交消息缩进 4 个空格,如果您在末尾保留另外 4 个空格以在屏幕上获得对称填充,则您将获得
80 - 4 * 2 = 72

我的建议如下:

  1. 将限制设置为 50,这样您就可以将第一行保持在 50 个字符以下。
  2. 忽略连续行的 72 个字符限制。

推理:

由于 50/72 规则非常常见,因此许多工具(软件、Web 服务等)都认为,如果将提交消息缩短到第一个换行符或前 50 个字符(无论先到哪一个)就可以。因此,如果您没有在提交消息的前 50 个字符中添加任何合理的内容,您将不会在这些工具中看到有用的提交消息。即使您不使用任何这些工具,从事同一项目的其他人也可能会使用这些工具,这将确保这些人在他们的工具中获得良好的提交消息。

至于 72 个字符的限制,请参阅上文,这只是为了在终端窗口中显示提交消息,但所有其他工具(例如应用程序和 Web 服务)都会正确且很好地打破字边界上的长行,所以如果您不这样做坚持 72 个字符的限制,使用任何这些工具的人都不会遇到任何问题,因此这个限制远不如第一行的 50 个字符限制那么重要。对于终端用户来说,尽管换行有点难看,但提交消息仍然可读。

恕我直言,修复终端中提交消息的打印是

git
开发人员的任务,而不是使用
git
的人的任务来解决该限制,因为如果终端只有 40 个字符宽度怎么办?那么使用 72 个字符时它仍然会出现难看的中断。谁定义今天的终端必须是 80 个字符宽,仅仅因为这曾经是操作系统的 pre-UI 区域中计算机的文本控制台宽度?在单词边界上打破文本并不难。


8
投票

据我所知,遗憾的是,没有。

它在 Sourcetree 的 Jira 系统中注册为次要优先级的改进:

https://jira.atlassian.com/browse/SRCTREE-1068

© www.soinside.com 2019 - 2024. All rights reserved.