本地已有修改时如何编辑Git分支?push被提示分支落后远程怎么解决
Git推送提示本地分支落后于远程的解决方案
Updates were rejected because the tip of your current branch is behind
its remote counterpart. Integrate the remote changes (e.g.
'git pull ...') before pushing again.
See the 'Note about fast-forwards' in 'git push --help' for details.
该报错通常由三类原因导致:git pull过程中产生的合并冲突未完成解决、本地分支绑定的上游远程分支不匹配、本地与远程分支提交历史出现分叉未完成合并,可按照以下步骤处理:
- 校验本地分支与远程分支的绑定关系
执行git branch -vv查看当前分支对应的上游分支,确认绑定的为目标推送远程分支,若绑定错误,执行git branch --set-upstream-to=origin/[目标远程分支名]重新绑定。 - 排查并解决未处理的合并冲突
执行git status查看工作区状态,若存在both modified标记的文件,说明拉取代码时合并冲突未完成处理:- 打开冲突文件,手动调整
<<<<<<< HEAD、=======、>>>>>>> [远程提交哈希]包裹的冲突内容,保留最终生效的代码 - 冲突调整完成后执行
git add [冲突文件名]标记冲突已解决 - 执行
git commit完成合并提交,Git会自动生成合并说明,直接保存即可。
- 打开冲突文件,手动调整
- 合并远程最新提交到本地
先执行git fetch origin [目标远程分支名]拉取远程分支最新提交到本地缓存,二选一执行以下操作完成合并:- 若需要保持线性提交历史,执行
git rebase origin/[目标远程分支名],将本地提交接在远程最新提交之后,变基过程中出现冲突按照上述冲突处理步骤解决后,执行git rebase --continue直到变基完成 - 若不需要保持线性提交历史,执行
git merge origin/[目标远程分支名]完成合并即可
- 若需要保持线性提交历史,执行
- 重新推送代码
合并完成后执行git push即可正常推送,若此前使用了变基操作,可执行git push --force-with-lease安全强制推送,该参数会先校验远程分支是否有未同步的新提交,避免覆盖他人代码。
内容的提问来源于stack exchange,提问作者chandu
相关产品推荐
相关产品推荐

