1.You have not concluded your merge. (MERGE_HEAD exists)

本地有修改和提交,如何强制用远程的库更新。
出现这种情况一般是git本地有commit,但是不能更新,也不能cleanup,导致无法push到服务器。

使用git pull -f 强制更新,仍然提示 You have not concluded your merge. (MERGE_HEAD exists)。

这种情况,可以做好备份,放弃本地修改,用远程内容reset本地目录,当然新建目录重新clone也可以。

以下是使用reset命令使用远程内容强制更新本地目录,
git fetch 下载远程的库的内容,不做任何的合并,git reset 把HEAD指向刚刚下载的最新的版本。
注意,这样操作,之前所做的修改会被覆盖!!!谨慎使用!

git fetch --all

git reset --hard origin/master(根据本地版本)

2.Git使用中的冲突解决

在使用git pull代码时,经常会碰到有冲突的情况,提示如下信息:

error: Your local changes to "xxx.file" would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
即将更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。

一般来说遇到这种情况,首先commit本地的修改,

然后pull版本库的代码,修改发生冲突的文件,就可以正常merge和push操作了。

这里git为什么会提示在merge之前做这些操作呢?

merge manual中有一条警告:

Warning: Running git merge with uncommitted changes is discouraged:

while possible, it leaves you in a state that is hard to back out of in the case of a conflict.

有未提交修改情况下,不要执行merge,很可能会丢失修改。

看一下如何使用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、解决文件中冲突的的部分

打开冲突的文件,会看到类似如下的内容:

其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。

碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。

Git强制更新本地库和冲突解决的更多相关文章

  1. git 强制更新本地和强制提交覆盖

    强制更新覆盖本地: git pull时出现冲突 放弃本地修改,使远程库内容强制覆盖本地代码git fetch --all //只是下载代码到本地,不进行合并操作git reset --hard ori ...

  2. 【Git】六、分支管理&冲突解决

    上一节讲了如何和远端的仓库协同工作,这一节介绍一下分支 ---------------------------- 提要 //创建一个分支dev $ git branch dev //切换到dev分支 ...

  3. Git本地仓库和远程仓库冲突解决

    场景描述: 在本地创建了一个git repo,并且执行了,git init命令,创建了.gitignore文件,或者README.md文件: 在远程创建了一个git repo,创建时也初始化了.git ...

  4. Git push错误non-fast-forward后的冲突解决

    当要push代码到git时,出现提示: error:failed to push some refs to ... Dealing with “non-fast-forward” errorsFrom ...

  5. git强制更新

    1.下载远程的库的内容 git fetch --all 2.把HEAD指向刚刚下载的最新的版本 git reset --hard origin/master

  6. git 代码比较工具,分支冲突解决

    下载地址:https://www.scootersoftware.com/BCompare-4.2.9.23626.exe

  7. [svn]svn conflict 冲突解决

    转自:http://www.gezila.com/tutorials/17290.html 目录: 1. 同一处修改文件冲突 1.1. 解决方式一 1.2. 解决方式二 1.3. 解决总结 2. 手动 ...

  8. svn conflict 冲突解决

    1. 同一处修改文件冲突 开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了.不管你个人喜欢git还是svn还是其他,但还有一大部分公司在使用svn做代码管理工具.这里详细介 ...

  9. SVN常见错误和版本冲突解决

    之前在Eclipse下面误删除了svn的一些插件包,后来重装了就问题重重,在这里还是建议, Windows下SVN最好使用桌面版,在文件管理器下面更新和提交. 1.常见错误整理 #, c-format ...

随机推荐

  1. Java——分页 Servlet + Jsp+Jdbc 有点瑕疵

    1.创建数据库,插入多条数据 2.java连接DB 3.Person类: package com.phome.po; public class Person { private int id; pri ...

  2. js 拖拽 碰撞 + 重力 运动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. C语言文件操作详解

    C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现.文件操作标准库函数有: 文件的打开操作 fopen 打开一个文件 文件的关闭操作 fclose 关闭一个文件 ...

  4. CNN可解释

    1 http://bindog.github.io/blog/2018/02/10/model-explanation/ http://www.sohu.com/a/216216094_473283 ...

  5. stderr 和stdout

    今天又查了一下fprintf,其中对第一个参数stderr特别感兴趣. int fprintf(FILE *stream,char *format,[argument]): 在此之前先区分一下:pri ...

  6. 【windows核心编程】系统消息与自定义钩子(Hook)使用

    一.HOOk Hook是程序设计中最为灵活多变的技巧之一,在windows下,Hook有两种含义: 1.系统提供的消息Hook机制 2.自定义的Hook编程技巧 其中,由系统提供的消息钩子机制是由一系 ...

  7. GCC的符号可见性——解决多个库同名符号冲突问题

    引用自:https://github.com/wwbmmm/blog/wiki/gcc_visibility 问题 最近项目遇到一些问题,场景如下 主程序依赖了两个库libA的funcA函数和libB ...

  8. JavaScript内置对象——Math对象

    这几天在刷leetcode的时候用到了一些Math对象的知识,故作一下总结~ JavaScript中的Math对象也是一个常见的内置对象,然而与String等其它常见对象不同,Math对象没有构造函数 ...

  9. 【vim】删除指定标记前的内容 dt[标记]

    和删除标记内部有些相似,但目的不同.命令如下: dt[标记] 会删除所有光标和标记之间的内容(保持标记不动),如果在同一行有这个标记的话.例如 dt. 会删除至句子的末尾,但保持 '.' 不动.

  10. [Shell]获取IP地址

    ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6- ifconfig eth1 | grep &quo ...