在检出Git标签前更新子模块是否有负面影响?命令顺序该如何选择?
Git检出标签与子模块更新的正确顺序
必须先检出目标标签,再执行子模块更新。
原因很直接:每个Git标签对应项目的一个完整历史快照,其中已经包含了该版本下所有子模块的指定引用(比如对应的提交哈希)。如果先更新子模块,会基于仓库默认分支的子模块配置拉取最新内容,之后再切换到旧标签,子模块的状态会和标签版本不匹配,还得额外调整。
正确的操作步骤如下:
git clone <some_repo> cd <repo_dir> git checkout tags/tag_001 git submodule update --init
要是已经按错误顺序操作了,可以先执行git submodule deinit -f .清空当前子模块状态,再重新走上面的正确流程。
内容的提问来源于stack exchange,提问作者QTip
相关产品推荐
相关产品推荐

