问题场景
代码写到一半,git pull拉取代码,结果报错代码冲突
解决办法
其实报错信息的下一行就提示了怎么解决:Please commit your changes or stash them before you merge。就是说要么先把开发区的修改先git add和git commit提交了,要么通过git stash把修改暂存起来。前种和正常提交代码一样就不说了,下面是后种的实现。
将代码暂存
git stash
拉取代码,假设拉取test新分支
git pull origin test
将暂存的代码还原
git stash pop
这时有冲突的代码在文件里是这样的格式
<<<<<<< Updated upstream
git pull 拉取到的
=======git stash暂存的
>>>>>>> Stashed changes
然后就可以手动修改冲突,即把代码改成你最终想要的,再提交就可以了
原因分析
git pull相当于执行了两步:git fetch将代码拉取到本地版本库、git checkout将代码同步到工作区。所以当git checkout的时候发现代码版本不一致,就激活报错了,所以解决问题的核心就是消除不一致