问题背景
当使用git pull 来更新本地代码的时候,有时候会出现冲突,,提示:Please,commit your changes or stash them before you can merge,该提示上面会显示出冲突的文件。
问题分析
出现该问题的原因是你正在本地修改文件a.cpp,你的团队中另外一个人也修改了该文件并且已经提交到版本库中了,然后你们可能修改了代码的同一个地方或者有其他造成冲突的行为,这个时候你更新代码就会出现a.cpp的冲突。
解决方法
第一种方法就是直接commit你的本地修改,但是这样很容易覆盖到别人修改的部分,不建议使用(除非你已经告诉修改代码的那个人)。
第二种方法是在你的工作目录下使用git命令,先通过git stash将工作区恢复到上次提交的内容,同事备份本地修改,之后再正常git pull更新仓库里的代码,之后再执行git stash pop 将本地的修改恢复到当前本地工作区。
git stash
git pull
git stash pop
(但是这样如果真的有冲突的话,当git stash pop 之后还是会有冲突呀,只是git pull命令执行完后不会提示冲突。。。)
第三种方法是放弃本地修改,直接使用远程仓库里的最新代码(这样你可以确保你修改的代码是在别人最新的代码基础上进行的)。具体命令为:
git reset --hard
git pull