向GitHub仓库推送文件时报non-fast-forward被拒错误怎么办?
Git推送报错(non-fast-forward)解决方案
这个错误触发原因是本地当前分支的提交版本落后于远程对应分支,远程存在本地没有的提交记录,Git为避免覆盖远程内容阻止了直接推送,可按以下两种场景选择解决方式:
场景1:需要保留远程和本地所有提交记录(推荐)
- 第一步:拉取远程最新变更并和本地分支合并
git pull origin main
若执行后提示文件冲突:
- 打开标记为冲突的文件,手动调整冲突内容(
<<<<<<< HEAD到=======区间为本地内容,=======到>>>>>>> [commit哈希]区间为远程内容),调整完成后保存文件 - 执行命令标记冲突已解决:
git add [冲突文件名] - 提交合并结果:
git commit -m "合并远程与本地变更"
- 第二步:重新执行推送命令即可
git push -u origin main
如果拉取时提示fatal: refusing to merge unrelated histories(通常出现在刚初始化远程仓库,远程存在README、LICENSE等本地没有的初始化文件时),将拉取命令修改为以下内容即可:
git pull origin main --allow-unrelated-histories
场景2:确认远程分支内容不需要保留,直接用本地分支覆盖远程
注意:该操作会清空远程上所有本地不存在的提交记录,请确认后再执行
git push -f origin main
内容的提问来源于stack exchange,提问作者Alina
相关产品推荐
相关产品推荐

