如何解决origin master HEAD落后于最新推送提交且分支禁止修改历史的问题
解决步骤
- 第一步先同步本地存储的远端分支引用缓存,你当前本地缓存的
origin/HEAD、origin/master指向和远端实际状态不一致,是git pull提示已最新的核心原因,执行以下命令刷新缓存:git remote update origin --prune - 执行完成后验证远端master的实际指向,确认现在本地缓存的
origin/master对应commit Y:git log origin/master -n 2 - 直接推送本地master分支到远端即可,因为commit Z已经在远端master存在,仅移动分支HEAD指针,不会修改历史,不会触发历史修改权限拦截:
git push origin master
如果操作时提示无master分支的直接推送权限,说明仓库开启了master分支保护,必须走PR合并流程,可以按以下操作生成可提交的PR:
- 基于当前本地master创建临时分支
git checkout -b temp-fix-master-ref- 推送临时分支到远端
git push origin temp-fix-master-ref- 在仓库管理页面提交临时分支到master的PR,合并后远端master HEAD会自动更新到commit Z
- 最后再次同步远端引用,验证状态是否一致:
git remote update origin --prunegit log --oneline -n 2 master origin/master
两条命令输出的最新提交ID一致即说明修复完成。
内容的提问来源于stack exchange,提问作者jcodesalot
相关产品推荐
相关产品推荐

