2012-07-31 63 views
1

我使用的是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

感謝

回答

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