You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

git-am应用补丁的顺序规则及自定义排序方式咨询

让git-am按邮件Subject排序应用补丁的方法

git-am本身没有直接支持按Subject排序的内置参数,但可以通过预处理邮件文件,先按Subject排序再传给git-am来实现,具体步骤如下:

1. 生成按Subject排序的补丁文件列表

借助formail工具(多数Linux发行版可通过mailutils包安装)提取每个邮件的Subject,关联文件名后排序,生成有序的文件列表:

cd /tmp/mypatches
# 提取Subject并关联文件名,排序后仅保留文件名
formail -s sh -c 'echo "$(formail -xSubject: < "$1") $1"' * | sort | cut -d' ' -f2- > sorted_patches.txt

这段命令的细节:

  • formail -s 将每个邮件文件作为独立输入传递给后续shell脚本
  • 内层formail -xSubject: 精准提取邮件的Subject行内容,能正确处理多行折叠的Subject
  • 拼接Subject与文件名后排序,再剔除Subject部分,只保留排序后的文件名到sorted_patches.txt

2. 用git-am应用排序后的补丁

通过排序后的文件列表调用git-am,确保补丁按Subject顺序应用:

# 基础用法(文件名无特殊字符时适用)
git-am $(cat sorted_patches.txt)

# 更安全的用法(兼容含空格、特殊字符的文件名)
xargs -d '\n' git-am < sorted_patches.txt

额外提示

如果邮件Subject包含补丁序列前缀(比如[PATCH 1/5]这类标识),默认的字典排序会自动按数字顺序处理,刚好匹配补丁的预期应用顺序。若没有formail,也可以用grep+sed组合提取Subject,但formail处理邮件格式的兼容性更强。

内容的提问来源于stack exchange,提问作者Philippe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:12:34