zoukankan      html  css  js  c++  java
  • 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就会成功。
  • 相关阅读:
    Cocos2d-x开发实例:使用Lambda 表达式
    Cocos2d-x实例:单点触摸事件
    Cocos2d-x中触摸事件
    Cocos2d-x开发实例介绍帧动画使用
    Cocos2d-x开发实例介绍特效演示
    c++ 类型转换
    boost的编译
    c/c++二级指针动态开辟内存
    基于RANSAC的点云面分割算法
    点到平面直线的距离和空间直线的距离
  • 原文地址:https://www.cnblogs.com/xs-yqz/p/13042098.html
Copyright © 2011-2022 走看看