什么是git format-patch输出的第一行?

Chr*_*s H 20 git format-patch

在运行git format-patch时,目的是创建您编写的代码的电子邮件表示.到现在为止还挺好.我不是电子邮件专家,但在我看来,这种格式补丁输出的第一行不是标准的电子邮件标题格式......

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.每次我想发送补丁时,我都必须手动删除该行.

谢谢.

Fre*_*ihl 17

git help format-patch

讨论由git format-patch生成的补丁是UNIX邮箱格式,带有固定的"魔术"时间戳,表示文件是从格式补丁而不是真实邮箱输出的,如下所示:

       From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001
       From: Tony Luck <tony.luck@intel.com>
       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
Run Code Online (Sandbox Code Playgroud)

  • @DarkTrick,OP 询问了 9 月 17 日这个日期。答案提到这是一个神奇的数字。我只是补充一点,它可能是出于这个原因而被选择的。 (2认同)

Tac*_*tex 6

作为Fredrik 回答的附录,以下是 Junio Hamano 的一些相关评论:

"Mon Sep 17 00:00:00 2001"只是一个虚假的随机日期,使 Unix-From 行可以被普通MUA识别,并且与您的提交对象没有任何关系。真实日期在Date:标题上。

实际上,我曾经尝试将其更改为 git 的生日 ( Thu Apr 7 15:13:13 2005 -0700) 并且我记得结果证明有些人的脚本(或者可能是 MUA)被破坏并且关心“7”之前的内容......在 Unix-From 行上并丢弃了那个更新。

"From $SHA1 $magic_timestamp"行和其他标题行使其看起来像一个mbox

链接:123

  • Hamano 报价+1。但我希望有人能解释为什么选择*那个*神奇的日期,或者它是否只是随机的。 (2认同)

GoZ*_*ner 5

输出为 mbox 格式。您可以轻松地删除第一行:

git format-patch --stdout <range> | sed 1d
Run Code Online (Sandbox Code Playgroud)

然后对结果做你想做的事。

或者,您可以使用git它本身来发送电子邮件。尝试:

git send-mail --smtp-server=<your server> *.patch
Run Code Online (Sandbox Code Playgroud)

有关所有选项,请参阅GIT Send-Mail 手册页。