如何获取.gitmodules中特定子模块的最新发布标签
Git子模块获取特定子模块最新发布标签的方法
你的主仓库标签和子模块标签是完全独立的,子模块的标签存储在各自的远程仓库里,要获取特定子模块的最新发布标签,可以这么操作:
针对单个特定子模块(比如yolov7)
方法1:用git submodule foreach带条件过滤
直接在主仓库根目录执行以下命令,只会处理目标子模块:
git submodule foreach 'if [ "$name" = "yolov7" ]; then git fetch --tags; git describe --abbrev=0 --tags; fi'
$name是Git内置的子模块名称变量,对应你.gitmodules里的submodule字段值git fetch --tags先拉取远程所有标签,保证本地拿到最新的标签数据git describe --abbrev=0 --tags会输出当前子模块仓库里最新的标签
方法2:直接进入子模块目录操作
如果觉得遍历麻烦,也可以直接切换到子模块目录执行命令:
cd yolov7 git fetch --tags git describe --abbrev=0 --tags cd ..
批量处理多个特定子模块
如果需要同时获取多个子模块的最新标签,比如同时处理yolov7和strong_sort/deep/reid,可以修改条件判断:
git submodule foreach 'if [ "$name" = "yolov7" ] || [ "$name" = "strong_sort/deep/reid" ]; then git fetch --tags; echo "子模块 $name 的最新标签:"; git describe --abbrev=0 --tags; fi'
内容的提问来源于stack exchange,提问作者Mike B
相关产品推荐
相关产品推荐

