git格式补丁输出的第一行是什么?
运行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 自de8d128fb520416e0b029c913b3a5ce900d0320c起,2001年9月17日星期一00:00:00 消息Id: 发件人:克里斯托弗·哈维 日期:2013年4月3日星期三10:17:52-0400 主题:[修补程序0/3]***此处为主题*** 致:克里斯托弗·哈维 ***这里的宣传语*** 克里斯托弗·哈维(3): 承诺2 承诺3 承诺4 数据| 3+++ 1个文件已更改,3个插入(+) -- 1.7.12.4 2001年9月17日星期一00:00:00,de8d128fb520416e0b029c913b3a5ce900d0320c的git格式补丁输出的第一行是什么?,git,format-patch,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
是什么?日期是几号?在我看来,它是任意的,而且它还阻止我将它传送到sendmail。每次我想发送补丁时,都必须手动删除该行
谢谢。Fromgit-help-format-patch
讨论
git格式修补程序生成的修补程序是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
自8f72bad1baf19a53459661343e21d6491c3908d3周一2001年9月17日00:00:00
发信人:托尼·勒克
日期:2010年7月13日星期二11:42:54-0700
主题:[补丁]=?UTF-8?q?>>[IA64]=20Put=20ia64=20config=20files=20on=20the=20=
=?UTF-8?q?Uwe=20Kleine-K=C3=B6nig=20饮食=
MIME版本:1.0
内容类型:文本/纯文本;字符集=UTF-8
内容传输编码:8比特
输出为mbox格式。您可以使用以下工具轻松剥离第一行:
git format-patch --stdout <range> | sed 1d
有关所有选项,请参见。作为的附录,以下是Junio Hamano的一些相关评论:
“Mon Sep 17 00:00:00 2001”
只是一个伪随机日期,用于使Unix From line可由common识别,与提交对象无关。实际日期在date:
header上
事实上,我曾经试着把它改为git的生日(Thu Apr 7 15:13:13 2005-0700
),我记得结果是有些人的脚本(或者可能是MUA)被破坏了,并且关心“7”之前的内容。。。在Unix上从第行开始,并放弃了该更新
“From$SHA1$magic_timestamp”
行和其他标题行使其看起来像一个
链接:,。来自维基百科()
2001年——9月11日袭击后,纽约证券交易所重新开放交易,这是大萧条以来最长的一次关闭
也许只是巧合 Git2.32(2021年第2季度)实际上在文档的其余部分开始引用之前就预先解释了格式补丁输出的各个部分
参见作者(2021年3月24日)
(于2021年3月30日合并)
:概述什么是“补丁”消息
文本中说,为每次提交准备了一个称为“补丁”的东西,它适用于电子邮件提交,“am”是使用它的命令,但没有说明“补丁”到底是什么
页面中的描述也提到了“三段划线”,但不清楚它是什么,除非读者能更详细地了解“补丁”是什么
添加一个简短的段落,概述输出的外观
git格式修补程序
现在在其中包括:
准备每个提交,并在中使用其“补丁”
每次提交一条“消息”,格式类似于UNIX邮箱
命令生成的“消息”由三部分组成:
- 以
From开头的简短元数据头
使用2001年9月17日星期一00:00:00的固定日期戳帮助程序
与“文件(1)”类似,以识别该文件是此文件的输出
命令,记录作者身份、作者日期的字段,
以及更改的标题(摘自
提交日志消息)
diff-p--stat
”输出(参见
)在提交和其父级之间
+1为Hamano报价。但我希望有人能解释为什么选择了那个神奇的日期,或者它是随机的。
git log-S'Mon Sep 17 00:00:00 2001'--all-p--source--reverse--(排除)t'
显示是Hamano做出了承诺,引入了神奇的日期,但它没有说明选择该日期的原因。UNIX时间戳似乎也不是一个非常特殊的数字:1000677600
,尽管它比字符串更简洁。SHA-1也是commit的时间戳,但它有点无用,因为SHA-1在使用新的提交程序和父提交程序应用后将发生变化。我可能需要注意的是,Linux Torvalds于9月17日(但在1991年)发布了Linux内核的第一个版本。
git send-mail --smtp-server=<your server> *.patch