1

我正在使用 msys git,我注意到的一件事是,当我在 vi 中时,我编写了一个包含两个或多个换行符的提交消息,当它实际提交时,只有一个换行符。

如果我写这个:

my first commit

Hello out there from the first line.


Hello out there from two linefeeds below.


它将被提交为:

my first commit

Hello out there from the first line.

Hello out there from two linefeeds below.


有没有人使用 msys git 注意到这一点,我怎样才能阻止它发生?

git 版本 1.7.10.msysgit.1

谢谢

4

1 回答 1

1

如果您查看pretty.c(负责format_commit_item()function),这似乎是提交消息的规范。

第一个空行用于将标题与提交消息的正文分开。
所有其他换行符被分组到不超过一个空行中,可能是因为这些提交可以在电子邮件中发送,并且审阅者不希望看到换行符被使用和滥用,从而使所述电子邮件过长而无法滚动。


OP 测试证实这在以前的 msysgit 版本是可能的:

好吧,我在 VM 中进行了一些测试,发现 Git-1.7.7-preview20111014.exe 如果我安装它然后转到 Git GUI 并打开我的存储库并提交提交,我可以在不合并的情况下进行多个换行。
我希望他们能把它带回来,我需要它!–

现在,Git-1.7.7-preview20111014 表示提交 81143a87 (2011-10-14T06:04:08-07:00),这意味着pretty.c处于该状态 (commit f67d2e82d6)
从那时起,它 ( pretty.c) 主要演变为解析提交签名,对format_commit_item()函数没有明显影响。


我确认另一个 OP 的发现:

即使使用最新的 msysgit (PortableGit-1.7.11-preview20120710),在git gui中编辑的提交也会保留其换行符。
在 vi 中编辑的提交不会。

d

您可以看到初始消息提交仅保留每个评论一个换行符。
我必须在 git gui 中对其进行修改,以便放置(并在提交后保留)多个换行符。

于 2012-07-31T05:53:14.827 回答