Visual Studio中Git Push错误:远程包含本地未有的内容
解决Git推送冲突且不丢失内容的方法
方法一:手动解决冲突(推荐,适合需要保留双方修改的场景)
- 先确保本地修改已暂存(若未暂存):
也可指定具体文件:git add .git add 文件名 - 提交本地修改:
git commit -m "提交本地修改的描述" - 拉取远程最新代码,若存在冲突会进入冲突状态:
替换git pull origin 分支名分支名为实际操作分支,比如main或master - 查看冲突文件:
输出中标记为git statusboth modified的文件即为冲突文件 - 打开冲突文件,找到冲突标记块:
手动编辑文件,保留需要的内容并删除所有冲突标记<<<<<<< HEAD 本地的修改内容 ======= 远程的修改内容 >>>>>>> 远程分支的哈希值 - 暂存解决冲突后的文件:
git add . - 提交合并结果:
git commit -m "解决合并冲突,整合本地与远程修改" - 推送修改到远程:
git push origin 分支名
方法二:使用rebase变基(适合希望提交记录更整洁的场景)
- 暂存并提交本地修改(同方法一的前两步)
- 执行变基操作,拉取远程最新代码并将本地提交排在远程提交之后:
git pull --rebase origin 分支名 - 若出现冲突,Git会暂停变基,按方法一的冲突解决步骤处理后,执行:
若需放弃变基,执行:git rebase --continuegit rebase --abort - 变基完成后推送修改:
git push origin 分支名
注意事项
- 解决冲突前,建议复制整个本地仓库文件夹做备份,避免误操作丢失内容
- 若不确定冲突内容的取舍,可与团队成员沟通确认后再修改
内容的提问来源于stack exchange,提问作者Ripal Patel
相关产品推荐
相关产品推荐

