忘记拉取GitHub远端新提交就生成本地commit时如何推送修改
Git提交历史分叉时的推送操作指南
你遇到的报错本质是本地分支和远端分支提交历史出现分叉,Git为了避免覆盖远端内容触发的推送拦截,可根据需求选择以下两种解决方案:
方案1:合并提交(操作门槛低,无风险)
- 拉取远端最新提交并自动和本地提交合并:
git pull origin main
(如果你的主分支名是master就替换成master,下同) - 如果控制台提示存在文件冲突,打开冲突文件,删除
<<<<<<< HEAD、=======、>>>>>>> 远端提交哈希这类冲突标记,编辑保留最终需要的代码内容后,执行:git add 冲突文件路径git commit -m "解决远端与本地提交冲突" - 完成后直接推送即可:
git push origin main
方案2:变基整合(保持提交历史线性整洁,适合个人项目)
- 拉取远端最新提交,将本地未推送的所有提交移动到远端最新提交之后:
git pull --rebase origin main - 出现冲突的话按方案1的方式解决冲突,之后执行:
git add 冲突文件路径git rebase --continue
如果中途想终止变基恢复到操作前状态,可执行git rebase --abort - 变基完成后执行推送:
git push origin main
注意:两种方案都不会丢失本地或远端的提交内容,多人协作的公共分支更推荐使用合并方案,避免修改提交历史影响其他协作者。
内容的提问来源于stack exchange,提问作者Ryan-X
相关产品推荐
相关产品推荐

