Git常见报错:Your local changes to the following files would be overwritten by merge

2024-03-13 256 0

1、报错原因
该报错在git pull时出现,一句话解释就是你在本地改动了代码但是还没有提交,此时再拉取最新代码,远程代码和你当前的本地代码发生冲突!(注意有冲突时才会提示,如果没有冲突,则git pull成功,因为git pull实质上就是一个远程分支merge到本地分支过程。

2、解决方案
本地代码commit后再pull(推荐)

//先把当前修改的工作区内容提交了
git add .
git commit

//拉取最新代码,这里就相当于两个已提交分支的合并了,有冲突解决冲突,没冲突就pull成功
git pull

//解决完冲突后,继续完成自己的本地代码

//完成以后,add/commit/push三连到远程库
git add
git commit
git push

***这样就实现了开发过程中,将远程最新改动合到了我本地,然后我基于最新代码接着开发
***该方法的缺点是会多出一条额外提交记录(pull之前的这次提交)

  • stash
//备份当前的工作区的内容,让工作区变为和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中
git stash

//拉取最新代码(依然有可能有冲突,如果有就手动解决冲突)
git pull

//从Git栈中读取最近一次保存的内容,恢复工作区的相关内容
//这样就相当于是基于远程库最新版本修改了
git stash pop

***注意,最后恢复暂存区的时候可能与最新代码有冲突,此时仍需要手动解决冲突
***该方法虽然没有多余提交记录,但稍微麻烦一点

 

    相关文章

    如何将代码仓库中的”online”分支推送到线上服务器,并确保主分支”main”与之同步?
    宝塔里面给项目设置固定的git 帐号和密码,不然每次都要输入帐号和密码,让人烦
    宝塔面板搭建服务器网站环境(超详细)
    美洽客服:美洽在线客服绑定独立域名的源码教程 美洽JavaScript 网页插件
    Chatwoot客服系统:自建网站客服实时聊天工具详细教程
    Epusdt搭建教程:开源免费的跨平台USDT收付款Epusdt搭建

    发布评论