2

我正在为一个开源项目生成一些补丁,而我的 From: 行始终是 me@domain.com。在运行 git send-email 之前,我一直在手动将 From: 行编辑为 me-emaillist@domain.com。

  1. 反正有没有自动做到这一点?
  2. 我应该这样做吗?我已经在使用信封发件人配置。
  3. 由于我更改了发件人地址,上游 repo 中的作者行会是“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 的回答后,我的明确回答是:

  1. 没有为什么...
  2. 没有为什么...
  3. 是的,From: 行取自提交的作者,因为git am在上游存储库中设置作者姓名时使用 From: 行。
4

5 回答 5

2

使用git1.8.4 (July 2013),您现在可以设置“来自字段”:

" git format-patch"learned " --from[=whom]" 选项,将 " From:" 标头设置为指定的人(或运行命令的人,如果=whom缺少 " " 部分),并根据需要将原始作者信息移动到正文From:标头。

请参阅提交 a90804752f6ab2b911882d47fafb6c2b78f447c3

format-patch生成电子邮件,其中“ From”地址设置为每个补丁的作者。但是,如果您要发送电子邮件,则需要将作者身份替换为您的身份(如果它们不相同),并将作者身份添加到正文标题中。

通常这是由 处理的git-send-email,它在发送电子邮件之前进行转换。但是,某些工作流程可能不使用发送电子邮件(例如,imap-send 或将 mbox 提供给非 git MUA 的自定义脚本)。他们每个人都可以自己实现此功能,但要做到这一点并非易事(必须通过反转任何 RFC2047 编码或标头的 RFC822 引用来规范化身份,这已导致多年来发送电子邮件中的许多错误)。

这个补丁采用了不同的方法:它教格式补丁一个“ --from”选项,该选项在写出电子邮件时处理身份检查和正文标题。
在这个级别做起来要简单得多(因为我们还没有做任何引用),任何基于 format-patch 的工作流都可以轻松开启它。

签字人:杰夫·金<peff@peff.net>

您现在可以执行以下操作:

git format-path --from=...

和:

--from::
--from=<ident>::

identFrom:每个提交电子邮件的标题中使用。
如果提交的作者标识在文本上与提供的 不同,请在消息正文中ident放置一个From:标头与原始作者。
如果没有ident给出,则使用提交者身份。

请注意,此选项仅在您实际发送电子邮件并希望将自己标识为发件人但保留原作者git am并将正确选择正文内标头)时有用。
另请注意,它git send-email已经为您处理了此转换,如果您将结果提供给git send-email.


2016 年 8 月更新(3 年后)

请参阅Josh Triplett ( )的提交 6bc6b6c(2016 年 8 月 1 日) 。(由Junio C Hamano 合并 -- --db40a62 提交中,2016 年 8 月 10 日)joshtriplett
gitster

format-patch:format.from给出默认值--from

这可以帮助那些喜欢 format-patch 以默认为--from的用户,并使将来更容易更改默认值。

git config手册页现在包括

format.from:

--from为格式化补丁选项提供默认值。
接受布尔值或名称和电子邮件地址。

  • 如果falseformat-patch默认为--no-from,直接在补丁邮件的“发件人:”字段中使用提交作者。
  • 如果trueformat-patch默认为--from,在补丁邮件的“”字段中使用您的提交者身份,如果不同,则在补丁邮件的正文中From:包含一个“ From:”字段。
  • 如果设置为非布尔值,格式补丁将使用该值而不是您的提交者身份。

默认为false.


请注意,使用 Git 2.26(2020 年第一季度)可以更好地管理空间。

请参阅Jeff King ( )的提交 f696a2b提交 ffbea18提交 f447d02提交 b6537d8(2020 年 2 月 11 日) 。(由Junio C Hamano 合并 -- --d880c3d 提交中,2020 年 2 月 17 日)peff
gitster

mailinfo: 更自由地使用标题空格

签字人:杰夫·金

RFC822 和朋友允许在标头的冒号之后和值之前使用任意空格。
IE:

Subject:foo
Subject: foo
Subject:  foo

都有主语“ foo”。但mailinfo只需要一个空格。
这似乎并没有打扰任何人,但它比标准指定的更挑剔。我们可以轻松地在解析器中吸收任意空白,所以让我们这样做。

请注意,测试涵盖的空格太少和太多,但“太多”的情况已经可以正常工作(因为我们稍后会从值中吃掉前导和尾随空格)。

于 2013-07-17T06:58:06.337 回答
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它,此提交将没有您的身份。

这样做的唯一原因可能是避免向您的主要地址发送垃圾邮件——但我认为,一旦它公开,您无论如何都会收到它。

于 2013-02-26T05:23:43.840 回答
0

尝试运行echo 'alias me "John Doe <me-emaillist@domain.com"' >> ~/.gitaliases

于 2013-02-26T05:23:07.137 回答
0

使用特定电子邮件地址而不是其他电子邮件地址的另一种选择是使用sendmail 电子邮件别名格式,现在由git send-email(至少在 Git 2.5+,2015 年 7 月)支持

请参阅Allen Hubbe ( )的提交 3169e06(2015 年 5 月 26 日) 。(由Junio C Hamano 合并 -- --412e63f 提交中,2015 年 6 月 16 日)allenbh
gitster

send-email: 添加sendmail电子邮件别名格式

教 send-email 以sendmailaliases 格式读取别名,即

<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 年第三季度),Remi Lespinet ( Awaryn)对该功能进行了巨大的修改:

" " 现在对通过等git send-email给出的名称执行别名扩展。--cccmd

这一轮带有更多增强的电子邮件地址解析器。

提交 fa5b1aa提交 b1c8a11提交 1fe9703提交 c46e27a提交 193d716提交 b5e112d提交 d4cf11c提交 f6f79e5提交 62089fb,(2015 年 6 月 30 日),提交 b1c8a11,(2015 年 6 月 20 日,提交),(3) 8d314d7(2015 年 7 月 7 日),作者Remi Lespinet ( Awaryn)
(由Junio C Hamano 合并 -- gitster--8f50e2e 提交中,2015 年 8 月 3 日)

于 2015-06-18T14:25:37.660 回答
0

对我来说(git 版本 2.17.1)这有效:

git config format.from true

根据man git config

... If true, format-patch defaults to --from, using your committer identity in the "From:" field of patch mails and including a "From:" field in the body of the patch mail if different.

于 2018-11-03T18:26:08.300 回答