错误描述
pull 拉取远端代码报错 ,显示一堆警告和一个错误
error: Your local changes to the following files would be overwritten by merge:
产生原因
该报错在 git pull 拉取代码时出现,一句话解释就是你在本地改动了代码但是还没有提交,此时再拉取最新代码,远程代码和你当前的本地代码发生冲突!(注意有冲突时才会提示,如果没有冲突,则 git pull 成功,因为 git pull 实质上就是一个远程分支 merge 到本地分支过程。
解决方法
保留本地修改
本地代码commit 后再pull
//先把当前修改的工作区内容提交了
git add .
git commit
//拉取最新代码,这里就相当于两个已提交分支的合并了,有冲突解决冲突,没冲突就pull成功
git pull
//解决完冲突后,继续完成自己的本地代码
//完成以后,add/commit/push三连到远程库
git add
git commit
git push
***这样就实现了开发过程中,将远程最新改动合到了我本地,然后我基于最新代码接着开发
***该方法的缺点是会多出一条额外提交记录(pull之前的这次提交)
?stash
执行以下三条命令
git stash #封存修改
git pull origin master
git stash pop #把修改还原
操作介绍:
git stash:备份当前工作区内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前工作区内容保存到Git栈中 git pull:拉取服务器上当前分支代码 git stash pop:从Git栈中读取最近一次保存的内容,恢复工作区相关内容。同时,用户可能进行多次stash操作,需要保证后stash的最先被取到,所以用栈(先进后出)来管理;pop取栈顶的内容并恢复 git stash list:显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。 git stash clear:清空Git栈
废弃本地的修改
核心思想就是版本回退,具体命令如下
不建议使用这种方法。除非你再三确定不需要本地的修改了
git reset --hard
git pull origin master
注意:
每次在本地开始修改代码时,养成先 git pull 拉取版本库最新改动的习惯,就不会遇到这个报错了。
文章如有错误,恳请大家提出问题,本人不胜感激 。 不懂的地方可以评论,我都会一一回复
文章对大家有帮助的话,希望大家能动手点赞鼓励,大家未来一起努力 ? ? 长路漫漫,道阻且长
|