zoukankan      html  css  js  c++  java
  • git报错:Auto Merge Failed; Fix Conflicts and Then Commit

    本文来源:http://blog.csdn.net/trochiluses/article/details/10100719
    1.出错场景:


    协同开发时,我们从远程服务器上pull下代码的时候,出现以下提示信息:

    Auto Merge Failed; Fix Conflicts and Then Commit the Result.

    2.原因分析:

    利用git status,输出如下:

    root@hyk-virt:/etc# git status
    # On branch master
    # Your branch and 'origin/master' have diverged,
    # and have 2 and 2 different commits each, respectively.
    #
    # Unmerged paths:
    #   (use "git add/rm <file>..." as appropriate to mark resolution)
    #
    #    both modified:      apt/sources.list
    #
    # Changes not staged for commit:
    #   (use "git add <file>..." to update what will be committed)
    #   (use "git checkout -- <file>..." to discard changes in working directory)
    #
    #    modified:   cups/subscriptions.conf
    #    modified:   cups/subscriptions.conf.O
    #    modified:   mtab
    #    modified:   update-manager/release-upgrades
    #
    no changes added to commit (use "git add" and/or "git commit -a")

    从git status的结果可以发现:其中sources.list这个文件存在合并冲突
    而进一步分析git pull的原理,实际上git pull是分了两步走的,(1)从远程pull下origin/master分支(2)将远程的origin/master分支与本地master分支进行合并

    以上的错误,是出在了第二步骤

    3.解决方法


    方法一:如果我们确定远程的分支正好是我们需要的,而本地的分支上的修改比较陈旧或者不正确,那么可以直接丢弃本地分支内容,运行如下命令(看需要决定是否需要运行git fetch取得远程分支):

    $:git reset --hard origin/master

    或者$:git reset --hard ORIG_HEAD

    解释:

     git-reset - Reset current HEAD to the specified state

    --hard
                   Resets the index and working tree. Any changes to tracked files
                   in the working tree since <commit> are discarded.

    方法二:我们不能丢弃本地修改,因为其中的某些内容的确是我们需要的,此时需要对unmerged的文件进行手动修改,删掉其中冲突的部分,然后运行如下命令

    $:git add filename

    $:git commit -m "message"

    方法三:如果我们觉得合并以后的文件内容比价混乱,想要废弃这次合并,回到合并之前的状态,那么可以运行如下命令:

    $:git reset --hard HEAD

  • 相关阅读:
    sql datepart ,dateadd,datediff,DateName函数
    DEV控件:gridControl常用属性设置
    师兄建议:
    .GRIDVIEW奇偶行变色
    C#中在主窗体中用ShowDialog方法显示子窗体的使用技巧
    Dev 控件lookUpEdit的数据绑定及其获取从UI界面赋给lookupedit的值
    从VS界面把图片导入数据库:①:把图片转换为二进制数据,②再把二进制数存进数据库
    YYKit之YYText
    分享使用method swizzling的经历
    autoreleasepool的笔记
  • 原文地址:https://www.cnblogs.com/init-007/p/11560046.html
Copyright © 2011-2022 走看看