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
***注意,最后恢复暂存区的时候可能与最新代码有冲突,此时仍需要手动解决冲突
***该方法虽然没有多余提交记录,但稍微麻烦一点
效果:
- overwritten following changes local filesoverwritten following changes local overwritten following changes files overwritten following错误changes overwritten following解决方案changes overwritten following changes代码 overwritten following changes问题 overwritten following untracked错误 overwritten following untracked working 分支overwritten following checkout overwritten changes proceed commit