Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在SourceTree中将提交消息主题保持在50个字符以下_Git_Atlassian Sourcetree - Fatal编程技术网

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

Git 在SourceTree中将提交消息主题保持在50个字符以下,git,atlassian-sourcetree,Git,Atlassian Sourcetree,在从Hg迁移到Git的过程中,我也在复习提交消息的编写。我发现关于Git行长度的常见建议如下: 第一行/主题行最多50个字符 后续行最多72个字符 我目前大部分的Git工作都是使用SourceTree。我意识到上面的1和2只是与规则相反的典型建议。但是,不管它们的状态如何,我希望SourceTree能够帮助我同时遵循这两个建议 为此,我已启用以下设置: ☑ 对提交消息使用固定宽度字体 ☑ 在commet消息中以[72]个字符显示列指南 但是,这仅为第一条指南提供了有限的支持(主题行

在从Hg迁移到Git的过程中,我也在复习提交消息的编写。我发现关于Git行长度的常见建议如下:

  • 第一行/主题行最多50个字符
  • 后续行最多72个字符
  • 我目前大部分的Git工作都是使用SourceTree。我意识到上面的1和2只是与规则相反的典型建议。但是,不管它们的状态如何,我希望SourceTree能够帮助我同时遵循这两个建议

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

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


    但是,这仅为第一条指南提供了有限的支持(主题行<50个字符)。如果我把“72”改为“50”,我的问题就会迎刃而解(上面的建议2会变得更难遵循)SourceTree中是否有任何方法可以改善这种情况,使其在这两条建议上都能帮助我?或者,当我的直觉指示我这样做时,我是否一直在数字符?

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

    它在Sourcetree的Jira系统中注册为一项改进,但优先级较低:


    50个字符的推荐实际上来自
    git
    man
    页面,用于
    commit

    man
    页面内容如下:

    虽然不是必需的,但最好以 总结更改的一行短(少于50个字符), 后面是一个空行,然后是更全面的描述。 将处理提交消息中直到第一个空行的文本 作为提交标题,该标题在整个Git中使用。例如
    git格式补丁
    (1)将提交转换为电子邮件,并在 主体行和主体中的其他提交

    但是,
    git
    中没有提到72个字符的限制。此约定起源于
    git
    终端用户,因为
    git log
    不会在单词边界处打断长行,而是一直将文本打印到屏幕上,使其在80个字符或任何终端宽度后自动中断。为了获得一个好的格式,我们的想法是选择72个字符,因为提交消息缩进4个空格,如果您在最后再留下4个空格以在屏幕上获得对称的填充,那么您就有了
    80-4*2=72

    我的建议如下:

  • 将限制设置为50,这样可以将第一行保留在50个字符以下
  • 忽略连续行上72个字符的限制
  • 理由:

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

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

    我想,
    git
    开发人员的任务是修复终端中提交消息的打印,而不是使用
    git
    的人的任务是绕过这个限制,就像终端只有40个字符宽那样?然后它仍然会有72个字符的难看的中断。今天,谁定义一个终端必须有80个字符宽,仅仅因为这曾经是操作系统的预UI区域中计算机的文本控制台宽度?打破文字边界并不是那么难做到