zoukankan      html  css  js  c++  java
  • 解决error: Your local changes to the following files would be overwritten by merge

    在项目里我们一般都会把自己第一次提交的配置文件忽略本地跟踪

    1
    [Sun@webserver2 demo]$ git update-index --assume-unchanged <filename>

    但是项目里的其他人如果不小心把该配置文件修改push到远程仓库之后,我们git pull代码的时候就会报错

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Sun@webserver2 demo]$ git add .
    [Sun@webserver2 demo]$ git commit -m 'update:index.php'
    [master f8a7428] update:index.php
     file changed, 1 insertion(+), 1 deletion(-)
    [Sun@webserver2 demo]$ git pull
    remote: Counting objects: 5, done.
    remote: Compressing objects: 100% (2/2), done.
    remote: Total 3 (delta 1), reused 0 (delta 0)
    Unpacking objects: 100% (3/3), done.
    From git.oschina.net:sunzmit/thinkphp
       1bc9485..c63dff3  master     -> origin/master
    error: Your local changes to the following files would be overwritten by merge:
        config.ini

    大意是:您的本地更改的文件被合并覆盖。并指出了会被覆盖的文件

    解决方法:

    1.撤销本地对文件的忽略

    1
    [Sun@webserver2 demo]$ git update-index --no-assume-unchanged config.ini

    2.从最近的一次提交中读取内容,备份当前的工作区的内容,将当前的工作区内容保存到Git栈中

    1
    2
    3
    [Sun@webserver2 demo]$ git stash
    Saved working directory and index state WIP on master: f8a7428 update:index.php
    HEAD is now at f8a7428 update:index.php

    3.pull远程仓库代码

    1
    2
    3
    4
    [Sun@webserver2 demo]$ git pull
    Merge made by the 'recursive' strategy.
     config.ini | 2 +-
     file changed, 1 insertion(+), 1 deletion(-)

    4.从Git栈中读取最近一次保存的内容,恢复工作区的相关内容

    1
    2
    3
    [Sun@webserver2 demo]$ git stash pop
    Auto-merging config.ini
    CONFLICT (content): Merge conflict in config.ini

    5.修改合并

    1
    2
    3
    4
    5
    6
    7
    8
    [Sun@webserver2 demo]$ vim config.ini
    <<<<<<< Updated upstream
    This is a test file!!!!!!!!!!!!!!!!
    =======
    This is a test file
    >>>>>>> Stashed changes
    [Sun@webserver2 demo]$ cat test.txt
    This is a test file

    <<<<<<< Updated upstream到=======中是从远程仓库pull下来别人的内容,=======到>>>>>>> Stashed changes中是我们本地文件内容,现在我们可以删除其他,只保留自己的内容This is a test file

    6.把文件回复到最新提交的版本,会保留修改内容

    1
    2
    3
    4
    5
    [Sun@webserver2 demo]$ git reset HEAD config.ini
    Unstaged changes after reset:
    M config.ini
    [Sun@webserver2 demo]$ cat test.txt
    This is a test file

    7.再次忽略本地跟踪,完成!

    1
    [Sun@webserver2 demo]$ git update-index --assume-unchanged config.ini

    8.最后不要忘记清除Git栈的备份

    1
    [Sun@webserver2 demo]$ git stash drop

    本文永久地址:http://blog.it985.com/10665.html
    本文出自 IT985博客 ,转载时请注明出处及相应链接。

  • 相关阅读:
    java架构解密——实时动态aop
    guice基本使用,配置模块的两种方式(三)
    guice基本使用,三种注入方式(二)
    guice的基本使用(一)
    Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
    java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
    java泛型(一)、泛型的基本介绍和使用
    java泛型学习(2)
    jquery,从后台查数据,给页面上添加树形。
    Java Annotation认知(包括框架图、详细介绍、示例说明)
  • 原文地址:https://www.cnblogs.com/yw0219/p/6020878.html
Copyright © 2011-2022 走看看