git冲突的处理
一般提交代码前我都会先pull,但是今天在做新需求的迭代,和同事A同时修改了几个文件,同事A提交代码后,这时候我pull下来,就会提示:
error: Your local changes to the following files would be overwritten by merge:
XXXX文件
Please, commit your changes or stash them before you can merge.
解决方法:
先提交当前代码到本地仓库,然后在pull服务器上A提交的代码,这时候git会把冲突的地方告诉你,冲突文件会有如下提示信息:
? <<<<<<< HEAD ? xxx in master ? ======= ? xxx in dev ? >>>>>>> dev
意思是:
<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。
=======之后,>>>>>>>之前,则是要merge过来的另一条分支上的代码。
>>>>>>>之后的dev是该分支的名字。
在本地解决完冲突后,重新commit,最后把你本地修改的文件push到服务器即可。
也可以:
git stash 先把当前工作现场“储藏”起来
git pull master 拉去远程仓库代码
git stash list 查看储藏起来的工作现场
git stash pop 恢复并删除工作现场(也可以先git stash apply,再用git stash drop来删除工作现场)