我正在使用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
谢谢
答案 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中编辑的提交不会。
您可以看到初始邮件提交仅为每条评论保留一个换行符 我必须在git gui中修改它以便放置(并在提交后保留)多个换行符。