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

如何自定义git submodule status的提交描述并为内置git describe传--exact-match参数

实现方案

git submodule status 本身没有提供透传参数给底层 git describe 的配置项或命令行开关,因此无法直接通过加参数的方式修改描述生成规则,你可以通过自定义遍历脚本的方式实现需求:

1. 直接运行自定义命令

以下单行命令可以直接输出符合要求的子模块状态,格式和原生命令基本一致:

git submodule foreach --quiet '
# 取当前子模块HEAD的完整提交哈希,要短哈希可以加--short参数
sha=$(git rev-parse HEAD)
# 优先取精确匹配的标签,无匹配则返回对应分支名
desc=$(git describe --exact-match $sha 2>/dev/null || git name-rev --name-only --exclude="tags/*" $sha)
# 按你需要的格式输出
echo "$sha $sm_path ($desc)"
'

2. 配置Git别名简化调用

如果需要频繁使用,可以把上述命令配置为Git全局别名,之后只需敲短命令即可输出结果:

git config --global alias.submod-status '!git submodule foreach --quiet '\''
sha=$(git rev-parse HEAD)
desc=$(git describe --exact-match $sha 2>/dev/null || git name-rev --name-only --exclude="tags/*" $sha)
echo "$sha $sm_path ($desc)"
'\'

配置完成后,直接执行 git submod-status 即可得到符合规则的输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:15:04