zoukankan      html  css  js  c++  java
  • Git:代码冲突常见解决方法

    摘自: http://blog.csdn.net/iefreer/article/details/7679631

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

    在发布这个配置文件的时候,会发生代码冲突:

    error: Your local changes to the following files would be overwritten by merge:
    protected/config/main.php
    Please, commit your changes or stash them before you can merge.

    如果希望保留生产服务器上所做的改动,仅仅并入新配置项, 处理方法如下:

    git stash
    git pull
    git stash pop
    然后可以使用git diff -w +文件名 来确认代码自动合并的情况.

    反过来,如果希望用代码库中的文件完全覆盖本地工作版本. 方法如下:

    git reset --hard
    git pull
    其中git reset是针对版本,如果想针对文件回退本地修改,使用

    git checkout HEAD file/to/restore


    摘自: http://zhidao.baidu.com/link?url=mRIczQrWwKb4tCcHaLwLGzjHcfqTvUAEyB1n-ayPSyVerNC0UAUgrJC7-tVI4iQT-Yr_g7vAMHKnhYXZ3MsGu-xrE5JBB3mjnh1Q2U3nD2O

    处理的方式非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理。
      1、先将本地修改存储起来
      $ git stash

      这样本地的所有修改就都被暂时存储起来 。是用git stash list可以看到保存的信息:

      git stash暂存修改
      其中stash@{0}就是刚才保存的标记。
      2、pull内容
      暂存了本地修改之后,就可以pull了。
      $ git pull

      3、还原暂存的内容
      $ git stash pop stash@{0}

      系统提示如下类似的信息:
      Auto-merging c/environ.c
    CONFLICT (content): Merge conflict in c/environ.c

      意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。
      4、解决文件中冲突的的部分
      打开冲突的文件,会看到类似如下的内容:

      git冲突内容

    其中Updated upstream 和=之间的内容就是pull下来的内容,和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

      解决完成之后,就可以正常的提交了。

  • 相关阅读:
    Weblogic 部署注意事项
    Can't load IA 32-bit .dll on a AMD 64-bit platform
    getDeclaredFields()和getFields()
    EJB QI查询
    Git for windows 中文乱码解决方案
    gulp browser-sync自动刷新插件
    input默认提示取消
    devDependencies和dependencies的区别
    npm安装插件提示
    gulp.watch监听文件
  • 原文地址:https://www.cnblogs.com/wuyifu/p/5564911.html
Copyright © 2011-2022 走看看