按常规Git流程将develop合并到master后,master端应用未同步develop分支的改动
master分支合并develop后运行代码未同步变更的实操排查步骤
- 首先校验合并操作的实际生效状态
在master分支的项目根目录下执行git log --oneline -15,逐行核对提交记录是否包含develop分支上的最新提交内容:- 如果找不到对应提交,说明此前执行的
git merge develop操作并未真正完成。常见触发原因是切分支时工作区存在未暂存的本地改动,与develop分支的同名文件存在差异,Git会自动中断merge流程避免覆盖本地修改,从结果上看就像“合并成功但代码没进来”。这种情况先执行git status清理无效的本地暂存改动,重新完成合并即可。
- 如果找不到对应提交,说明此前执行的
- 排查本地master分支的版本脱节问题
现有操作流程存在明显缺漏:切到master分支后、执行merge之前,没有拉取远程仓库的最新master代码。如果本地master是很久之前拉取的旧版本,哪怕在本地完成了与develop的合并,也可能出现本地分支与远程版本不匹配的问题,最终IDE加载的工作区文件还是旧的索引缓存,看起来和代码没同步的表现完全一致。 - 排除运行时缓存的干扰
就算Git拉取的分支代码完全与远程一致,项目启动时依然可能加载旧的编译产物:前端项目的dist/.cache构建目录、Java项目的target编译输出、Python项目的虚拟环境缓存、IDE内置的代码索引缓存,都会造成“代码不生效”的假象。直接删除对应缓存目录,重新安装依赖后启动项目,即可排除这类干扰。 - 确认push操作的同步结果
完成git push origin master后,需要核对远程仓库master分支的提交记录,确认develop的对应提交真的同步到了远程分支。如果push时因为远程master版本比本地新被拦截,未正确处理冲突就执行强制推送,很可能把远程master上的现有内容回退到旧版本,最终运行的代码自然看不到develop分支的变更。
原操作流程的优化方向:
切到master分支后,先执行git pull origin master同步远程最新代码,合并develop完成后先核对提交日志确认merge生效,再执行push操作,从流程上避免merge操作静默失败的问题。
内容的提问来源于stack exchange,提问作者Myrzabek
相关产品推荐
相关产品推荐

