我的git存储库上有一个项目,其中包含子模块,而这些子模块包含feather子模块。
由于我不对所有子模块负责,因此我不知道更新了我正在查看的提交后在那里发生了什么变化。因此,我想记录当前状态。
这意味着,我想知道我正在使用的所有子模块(显式和非显式)。对于每个子模块,我想知道其标签和/或提交。
我发现:
git ls-files --stage
很有帮助,但仅显示来自我的存储库的提交,而不显示子模块中的提交。
有什么主意吗?
答案 0 :(得分:1)
git submodule foreach --recursive "git describe --tags HEAD --exact-match 2>/dev/null || git rev-parse HEAD"
在每个子模块中递归运行命令git describe --tags HEAD --exact-match 2>/dev/null || git rev-parse HEAD
首先尝试找到恰好指向每个子模块头提交的最新标签。如果找不到标签,则返回提交。