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