如何获取子模块中所有标签对应的Commit ID?
Git子模块标签与对应Commit ID的获取方法
你可以直接修改现有命令,添加格式参数来同时输出标签和对应的Commit ID,执行以下命令即可:
git submodule foreach 'git tag --sort=-taggerdate -l --format="%(refname:short) %(objectname)"'
命令细节:
--format="%(refname:short) %(objectname)":自定义输出格式,%(refname:short)输出简化的标签名,%(objectname)输出标签关联的完整Commit ID
如果想要更易读的输出(比如带上子模块名称),可以用这个增强版命令:
git submodule foreach 'echo "【子模块】$name"; git tag --sort=-taggerdate -l --format=" 标签: %(refname:short) | Commit ID: %(objectname)"'
关于你补充的内容:
- 子模块Commit ID:指的是主仓库中记录的、该子模块当前固定的提交哈希值
- 标签Commit ID:是标签直接指向的提交哈希值,当两者匹配时,说明该子模块当前正处于这个标签对应的版本状态
内容的提问来源于stack exchange,提问作者tadm123
相关产品推荐
相关产品推荐

