Git:代码冲突常见解决方法

情景一:

如果系统中有一些配置文件在生产服务器上做了配置修改,然后后续开发又新添加一些配置项的时候,

在代码合并的时候,会发生如下代码冲突:

error: Your local changes to the following files would be overwritten by merge:
    public/conf/application.ini
Please commit your changes or stash them before you merge.

解决方案:(保留本地的修改同时又把远程的合并过来)

1:如果希望保留生产服务器上所做的改动,同时并入新配置项, 处理方法如下:(记住这3步曲)

1 git stash //将目前还不想提交的但是已经修改的内容进行保存至堆栈中
2 git pull
3 git stash pop

 git stash  的时候会把你本地快照,然后 git pull 就不会阻止你了,pull 完之后这时你的代码并没有保留生产环境的修改。

如果仅仅使用 到第二步,则会把本地修改的配置替换到生产环境中

 

使用   git stash pop  ,如有冲突,则会出现如下效果,需要到代码中去解决冲突。

 会发现发生冲突的本地修改还在,这时候你该commit push啥的就悉听尊便了,

 

2:不想保存本地修改,直接覆盖

直接将本地的状态恢复到上一个commit id 。然后用远程的代码直接覆盖本地就好了

git reset --hard 
git pull origin master

 

---------------------------------------------------------------------------------------------------

error: Pulling is not possible because you have unmerged files.

 

在git pull的过程中,如果有冲突,那么除了冲突的文件之外,其它的文件都会做为staged区的文件保存起来。

解决方案:

1 git reset --hard FETCH_HEAD
2 git pull就会成功。

 

posted @ 2020-06-04 10:43  小军的代码库  阅读(1591)  评论(0编辑  收藏  举报