Git 冲突:commit your changes or stash them before you can merge 的解决办法

问题背景

当使用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

 

你可能感兴趣的:(Git)