2013-04-03 37 views
17

當運行git format-patch時,意圖是創建你寫的代碼的電子郵件表示。到現在爲止還挺好。我沒有電子郵件的專家,但在我看來,這種格式補丁輸出的第一行是不是一個標準的電子郵件標題格式...什麼是git格式化補丁輸出的第一行?

 
From de8d128fb520416e0b029c913b3a5ce900d0320c Mon Sep 17 00:00:00 2001 
Message-Id: 
From: Christopher Harvey 
Date: Wed, 3 Apr 2013 10:17:52 -0400 
Subject: [PATCH 0/3] *** SUBJECT HERE *** 
To: Christopher Harvey 

*** BLURB HERE *** 

Christopher Harvey (3): 
    commit 2 
    commit 3 
    commit 4 

data | 3 +++ 
1 file changed, 3 insertions(+) 

-- 
1.7.12.4 

是什麼From de8d128fb520416e0b029c913b3a5ce900d0320c Mon Sep 17 00:00:00 2001?什麼是約會?它對我來說看起來是任意的,也阻止了我將它傳送給sendmail。每次我想發送補丁時,我都必須手動刪除該行。

謝謝。

+0

'git log -S'Mon Sep 17 00:00:00 2001'--all -p --source --reverse - 。 ':(排除)t''表明是Hamano做了提交神奇日期的提交,但沒有說爲什麼選擇了這個。 UNIX時間戳看起來不是一個非常特殊的數字:'1000677600',雖然它比字符串更整潔。 –

+0

另外SHA-1是提交的SHA-1,但它有點沒用,因爲一旦將SHA-1應用於新的提交者和父提交,SHA-1就會改變。 –

回答

15

git help format-patch

討論 通過GIT中格式的貼劑製造的貼劑是在UNIX信箱格式, 固定的「魔」的時間戳記,以指示該文件是從 格式的貼劑輸出,而比真正的郵箱,像這樣:

 From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001 
     From: Tony Luck <[email protected]> 
     Date: Tue, 13 Jul 2010 11:42:54 -0700 
     Subject: [PATCH] =?UTF-8?q?> > [IA64]=20Put=20ia64=20config=20files=20on=20the=20?= 
     =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20diet?= 
     MIME-Version: 1.0 
     Content-Type: text/plain; charset=UTF-8 
     Content-Transfer-Encoding: 8bit 
4

輸出是mbox格式。您可以輕鬆地將第一行剝離:

git format-patch --stdout <range> | sed 1d 

然後按照您的要求做結果。

或者,您可以使用git本身發送電子郵件。嘗試:

git send-mail --smtp-server=<your server> *.patch 

所有的選項見GIT Send-Mail Manpage

3

的附錄中Fredrik's answer,這裏有一些相關的評論由朱尼奧·哈默諾:

"Mon Sep 17 00:00:00 2001"只是一個僞隨機日期,使Unix的從線由共同MUA和識別沒有什麼關係用你的提交對象。真正的日期是Date:標題。

其實,我曾試圖將其更改爲混帳的生日(Thu Apr 7 15:13:13 2005 -0700),我記得原來,一些人的腳本(或者MUA)被打破,關心之前「7是什麼「...在Unix-From行上並放棄更新。

"From $SHA1 $magic_timestamp"線及其他頭部行有沒有使它看起來像一個mbox

鏈接:123

+0

+1爲Hamano報價。但我希望有人會解釋爲什麼*選擇了那個*神奇的日期,或者它只是隨機的。 –