多个换行符合并在git commit消息中

问题描述:

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

如果我这样写:

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

感谢

如果你看一下pretty.c(分管format_commit_item() function),似乎是对提交信息的标准。

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


OP test证实了这一点用于在msysgit的早期版本可能:

好吧,我做了一个VM一些测试,发现Git的-1.7.7-preview20111014.exe如果我安装它,然后转到Git GUI并打开我的回购和我提交一个提交,我可以做多个换行没有整合。
我希望他们能够带回来,我需要它! -

现在,Git-1.7.7-preview20111014 means commit 81143a87(2011-10-14T06:04:08-07:00),这意味着pretty.c was in that state (commit f67d2e82d6)
从那时起,它(pretty.c)的演变主要是解析提交签名,而对format_commit_item()函数没有可见的影响。


我确认了另外一种OP的发现:

即使是最新的msysgit(PortableGit-1.7.11-preview20120710),一个在混帐GUI提交编辑将保持其换行。
在vi中编辑的提交不会。

d

可以看出,最初的消息提交只保留每一个注释换行符。
我必须在git gui中修改它以便放置(并保留提交后)多个换行符。

+0

在旧版本的msysgit中,我可以有多个换行符。我检查了我的提交消息,并看到很多旧的提交都有多个换行符。通常我在提交中输入一些日志输出。有没有任何git选项可以允许我无意中禁用的多个换行符? – loop 2012-08-01 00:24:49

+0

@test我没有看到有关换行的选项。你有没有在GitHub上提交这些旧提交的例子? – VonC 2012-08-01 05:45:08

+0

对不起,没有。尽管如此,它确实存在。我可以在我的提交中看到多行。 – loop 2012-08-02 06:39:24