为什么 git 的建议行长度是摘要提交 50 行,正文提交 72 行?

Why are the suggested line lengths for git commits 50 for summaries and 72 for the body?

确切数字有一些变化,但一般来说,提交消息的第一行和后续行长度都有推荐长度或最大长度。常见的消息正文似乎最多为 72 个字符,进一步建议限制为 50 个。

这些或其他常见的 git 提交行限制的原因是什么?

我听说 72 个字符的限制与 RFC 2045 中定义的推荐电子邮件宽度限制 76 有关:

(5) (Soft Line Breaks) The Quoted-Printable encoding REQUIRES that encoded lines be no more than 76 characters long.

git 函数在生成电子邮件时向提交消息添加 4 个字符,这要求提交行短于电子邮件限制。反过来,我知道电子邮件字符限制与旧终端系统的 ~80 个字符限制有关。

如果这确实解释了 72 个字符的限制,那么 50 个字符的限制从何而来? Subject: 只有 9 个字符,所以在 50 之前添加它只会得到 59。也许我们然后添加常用的 7 个字符缩写的提交哈希 ID 和一个 space,它给我们 67,还有 5 个备用字符去.

摘要的 50 个字符限制不是硬性限制。但是您应该努力为您的提交找到一个好的简短摘要。因此,以最多 50 个字符为目标是实现这一目标的良好做法。

我认为 72 个字符的正文限制与每行 80 个字符的良好旧限制相符。许多其他项目中的 linux kernel coding style 使用此。

它是 72 而不是 80 的原因是因为 git 可能会在 git 消息的正文中添加一些缩进,并且它仍然是 80 个或更少的字符。