我正在为开源项目生成一些补丁,而我的From:行总是me@domain.com。在运行git send-email之前,我一直在手动编辑From:行为me-emaillist@domain.com。
示例:
From fab0cf45f10686688a8138f60a09505200cbb2a4 Mon Sep 17 00:00:00 2001
From: John Doe <me-emaillist@domain.com>
Date: Mon, 25 Feb 2013 23:06:23 -0500
Subject: [PATCH] nand: adjust erase/read/write partition/chip size for bad blocks
在考虑了mvp的答案之后,我明确的答案是:
git am
在上游存储库中设置作者姓名时使用From:行。答案 0 :(得分:2)
使用git1.8.4 (July 2013),您现在可以设置“来自字段”:
“
git format-patch
”学习了“--from[=whom]
”选项,它将“From:
”标头设置为指定人员(或运行命令的人员,如果“=whom
}“部分丢失”并根据需要将原始作者信息移动到体内From:
标题。
请参阅commit a90804752f6ab2b911882d47fafb6c2b78f447c3:
format-patch
生成电子邮件,其中“From
”地址设置为每个修补程序的作者。但是,如果要发送电子邮件,则需要将作者身份替换为您的身份(如果它们不相同),并将作者身份提交到体内 报头中。通常这由
git-send-email
处理,--from
在发送电子邮件之前进行转换。但是,某些工作流程可能不使用send-email(例如,imap-send或将mbox提供给非git MUA的自定义脚本)。他们每个人都可以自己实现这个功能,但是正确实现这一功能并非易事(必须通过反转任何RFC2047编码或RFC822引用标头来标准化身份,这已经在多年来的发送电子邮件中造成了许多错误。)这个补丁采用了不同的方法:它教授格式补丁“
<peff@peff.net>
”选项,该选项在写出电子邮件时处理身份检查和体内标题。
在这个级别上做起来要简单得多(因为我们还没有做任何引用),任何基于格式补丁的工作流都可以轻松打开它。签名:Jeff King
git format-path --from=...
你现在可以做:
--from::
--from=<ident>::
使用:
ident
在每封提交电子邮件的
From:
标题中使用ident
如果提交的作者标识在文本上与提供的From:
不同,请在原始作者的邮件正文中放置ident
标题。
如果没有给出git am
,请使用提交者标识。请注意,此选项仅在您实际发送电子邮件并希望将自己标识为发件人,但保留原作者时才有用(而
git send-email
将正确选择体内标题) 另请注意,git send-email
已经为您处理了此转换,如果您将结果提供给format-patch
,则不应使用此选项。
2016年8月更新(3年后)
commit 6bc6b6c见Josh Triplett (joshtriplett
)(2016年8月1日)
(由Junio C Hamano -- gitster
--合并于commit db40a62,2016年8月10日)
的默认值
format.from
:--from
提供--from
这有助于希望将format-patch默认为
format.from:
的用户, 并且可以更容易地在将来更改默认值。
git config
man page now includes:
--from
提供格式化补丁的false
选项的默认值
接受布尔值,或名称和电子邮件地址。
- 如果
format-patch
,--no-from
默认为true
,则直接在修补程序邮件的“发件人:”字段中使用提交作者。- 如果
format-patch
,--from
默认为From:
,则在补丁邮件的“From:
”字段中使用您的提交者身份并包含“false
”如果不同,补丁邮件正文中的字段。- 如果设置为非布尔值,则format-patch使用该值而不是您的提交者标识。
默认为{{1}}。
答案 1 :(得分:1)
设置你的git身份就足够了:
git config --global user.email me@domain.com
git config --global user.name "John Doe"
您还可以为每个git存储库设置您的身份:在该git存储库中运行这些命令,只需省略--global
标记。
您可能不应该使用me-emaillist@domain.com
,因为如果某人git am
,则此提交将不具有您的身份。
这样做的唯一原因可能就是避免垃圾邮件进入您的主要地址 - 但我认为一旦公开,您就会得到垃圾邮件。
答案 2 :(得分:0)
尝试运行echo 'alias me "John Doe <me-emaillist@domain.com"' >> ~/.gitaliases
。
答案 3 :(得分:0)
使用特定电子邮件地址而不是另一种电子邮件地址的另一个选择是使用 sendmail电子邮件别名格式,现在由git send-email
支持(至少在Git 2.5 +,2015年7月)
commit 3169e06见Allen Hubbe (allenbh
)(2015年5月26日)
(Junio C Hamano -- gitster
--在commit 412e63f合并,2015年6月16日)
send-email
:添加sendmail
电子邮件别名格式教成send-email以
sendmail
别名格式读取别名,即
<alias>: <address|alias>[, <address|alias>...]
示例:
alice: Alice W Land <awol@example.com>
bob: Robert Bobbyton <bob@example.com>
# this is a comment
# this is also a comment
chloe: chloe@example.com
abgroup: alice, bob
bcgrp: bob, chloe, Other <o@example.com>
注意:
- 不支持引用的别名和引用地址。
- 不支持续行。
对于Git 2.6 +(2015年第3季度),Remi Lespinet (Awaryn
)对该功能进行了巨大的返工:
&#34;
git send-email
&#34;现在对通过--cccmd
等提供的名称执行别名扩展本轮附带了更多增强型电子邮件地址解析器。
请参阅commit fa5b1aa,commit b1c8a11,commit 1fe9703,commit c46e27a,commit 193d716,commit b5e112d,commit d4cf11c,{{3} },commit f6f79e5,(2015年6月30日),commit 62089fb,(2015年6月30日),(2015年6月30日),commit b1c8a11(2015年7月7日)commit 8d314d7。<登记/>
(由Remi Lespinet (Awaryn
)合并于Junio C Hamano -- gitster
--,2015年8月3日)
答案 4 :(得分:0)
对我来说(git版本2.17.1)有效:
git config format.from true
根据man git config
:
...如果为true,格式补丁程序默认使用--from,使用 修补程序邮件的“发件人:”字段中的提交者身份,如果不同,则在修补程序邮件的正文中包括“发件人:”字段。