多个换行符合并在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中编辑的提交不会。
可以看出,最初的消息提交只保留每一个注释换行符。
我必须在git gui中修改它以便放置(并保留提交后)多个换行符。
在旧版本的msysgit中,我可以有多个换行符。我检查了我的提交消息,并看到很多旧的提交都有多个换行符。通常我在提交中输入一些日志输出。有没有任何git选项可以允许我无意中禁用的多个换行符? – loop 2012-08-01 00:24:49
@test我没有看到有关换行的选项。你有没有在GitHub上提交这些旧提交的例子? – VonC 2012-08-01 05:45:08
对不起,没有。尽管如此,它确实存在。我可以在我的提交中看到多行。 – loop 2012-08-02 06:39:24