Git替换核心文件夹后推送出现non-fast-forward错误如何解决?
报错原因说明
你遇到的[rejected] master -> master (non-fast-forward)报错,核心原因是你本地新初始化的仓库提交链和远程原有仓库的提交链完全独立,不存在共同的父提交,Git默认判定本地分支版本落后于远程,禁止直接推送。
完整报错提示:[rejected] master -> master (non-fast-forward) hint: Updates were rejected because the tip of your current branch is behind
对应解决方案
根据你是否需要保留远程仓库的原有提交记录,选择对应操作:
场景1:需保留远程所有历史提交
要将你当前的修改和原有历史合并,操作步骤如下:
- 拉取远程master分支内容,允许合并不相干的历史提交
git pull origin master --allow-unrelated-histories
- 按照提示解决代码冲突,完成后提交合并结果
- 执行正常推送命令即可
git push origin master
场景2:无需保留远程原有提交,直接用当前历史版本覆盖远程
注意:该操作会清空远程仓库的所有原有提交记录,请确认需求后再执行
- 执行强制推送命令覆盖远程分支即可
git push origin master -f
内容的提问来源于stack exchange,提问作者AndrewLeonardi
相关产品推荐
相关产品推荐

