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

时间:2012-07-31 05:19:47

标签: git msysgit

我正在使用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 version 1.7.10.msysgit.1

谢谢

1 个答案:

答案 0 :(得分:1)

如果你看 pretty.c (负责format_commit_item() function),那么这似乎是提交消息的标准。

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


OP test确认以前版本的msysgit中以前可能

  

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

现在,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),在 git gui 中编辑的提交也会保留其换行符。
在vi中编辑的提交不会。

d

您可以看到初始邮件提交仅为每条评论保留一个换行符 我必须在git gui中修改它以便放置(并在提交后保留)多个换行符。