如何指定“git send-email”发送邮件到特定的补丁?

6
如何指定'git send-email'发送特定补丁的邮件?
我有4个提交,但我还没有执行'git pull'。 当我执行'git send-email'时,它会发送4封邮件(每个提交一个补丁)。
我该如何配置git send-email,以便只发送最后一个提交的邮件?
谢谢。
3个回答

4

git-send-email接受指定要发送的补丁的参数。例如,

git send-email HEAD^

将为您当前分支上的最后一次提交创建一个补丁。同样,如果您首先使用 git-am 格式化补丁,则可以仅指定要发送的单个补丁文件。

有关如何指定修订版本的更多信息,请参见 man git-rev-list。您可能会关心的常见方法:

  • <commit1>..<commit2> 表示从 <commit1> 之后的所有内容,直到 <commit2>
  • <commit>^ 表示 <commit> 之前的提交
  • <commit>~5 表示 <commit> 之前的五个提交

请注意,git-send-email接受git-format-patch / git-rev-list参数是相当新的功能(需要相当现代的git)。 - Jakub Narębski
啊,谢谢Jakub,我不知道这个。我更倾向于使用推拉方式。我想git-format-patch已经接受了git-rev-list参数有一段时间了,所以应该会有一个替代方案。 - Cascabel
你建议的带有提交记录的变量不起作用。git send-email fb1171d274971b5c7984622836fbec1c144e0ea2 --annotate 尝试发送 2 个补丁,但没有一个是 fb1171d… - Hi-Angel

2
问题询问的是“特定补丁”,因此很多人可能会来这里查找如何为日志历史中的特定提交发送电子邮件。对于这种情况,答案可能是:
git send-email -1 b7ed62c8d882fecaf70da813a0494b2f8265d544 -to trullallero@tralala.com
其中,b7ed62c8d882fecaf70da813a0494b2f8265d544 是我想要作为单个[PATCH]发送的提交,无论它在日志历史中的位置如何。

1

我的看法是,这应该可以正常工作:

git send-email -1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接