Git子模块场景下:切换PR分支遇未合并文件,如何同步master并切换?
解决子模块导致的分支切换失败问题
步骤1:确保master分支及子模块完全同步
当前你应该还停留在master分支(因切换PR分支操作失败),先执行以下命令同步子模块:
# 更新子模块到master分支指定的版本 git submodule update --init --recursive
如果子模块目录下有未提交的修改,先临时保存(避免丢失):
# 进入子模块目录 cd path/to/your/submodule # 暂存修改 git stash # 返回主仓库 cd ../
若需要永久保存子模块的修改,可在子模块内创建临时分支提交:
cd path/to/your/submodule git checkout -b temp-submodule-save git add . git commit -m "Temporary save submodule local changes" cd ../
步骤2:切换到PR分支并同步子模块
尝试切换分支,同时自动处理子模块同步:
git checkout <my_pr_branch> --recurse-submodules
如果切换成功后子模块仍有状态异常,再执行一次子模块更新:
git submodule update --init --recursive
查看子模块状态的命令
默认git status不会显示子模块的详细变动,可用以下命令查看子模块具体状态:
# 查看子模块的简洁状态 git status --submodule=short # 查看所有子模块的详细状态 git submodule status
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

