如果两个分支上都对同一个文件进行了修改, 那么就有可能发生冲突.

首先创建一个分支, 并切换到该分支上:

然后修改index.html, 修改几个地方吧.

然后查看状态, 并commit:

然后切换到master, 并编辑同一个文件:

而这时index.html并不是realwork分支修改后的样子, 而是修改之前的样子:

然后修改index.html, 修改几处可能引起冲突的地方.

commit:

然后查看log:

接下来最应该做的就是diff:

也可以使用可视化工具进行diff:

下面进行合并:

不出所料, 冲突发生了, 自动合并失败.

现在的状态, 应该叫做Merging状态.

现在打开index.html是这样的:

可以看到两处冲突, 每处都有HEAD(master)版的和realwork分支版的.

上图我使用的是Visual Studio Code, 可以点击上面的按钮来进行冲突的解决, 也可以手动修改文件进行解决.

但是在这里我使用我配置好的mergetool:

git mergetool. 这个命令将会打开p4merge(我本机配置的mergetool):

按图示操作, 点击图标选择不同的版本, 最后点击保存即可.

关闭p4merge:

然后commit:

commit之后, 状态就不再是merging了, 但是会出现一个未被追踪的文件:

这是因为在解决冲突的时候, git会保存一个带有触痛的原始版本, 以备不时之需:

但是.orig文件是不应该被追踪的, 所以需要添加到.gitignore文件中:

然后查看状态:

这次只有.gitignore发生了变化.

commit:

最后可以删除 realwork 分支了:

查看log:

Ok.

Git分支(5/5) -- 解决合并的冲突的更多相关文章

  1. Git 基础教程 之 解决合并冲突

    ①  解决冲突 把Git合并失败的文件手动编辑成我们希望的内容 ②  提交,合并完成 场景: ①  新分支feature1,修改后,add, commit: ②  切回master后,修改后,add, ...

  2. Git 分支 (二)合并

    分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤:1. 开发某个网站.2. 为实现某个新的需求,创建一个分支.3. 在这个分支上开 ...

  3. eclipse git 文件状态 及git分支的创建与合并与删除

    eclipse里面Git文件状态及图标展示   EGit会出现如下图标,其对应状态及意义如下:      1)忽略[ ignored ]:仓库认为该文件不存在(如bin目录,不需要关注).通过右键Te ...

  4. 4.Git分支查看&创建&切换&合并

    查看分支 git branch -v # 查看分支,*代表当前所在的分支     创建分支 git branch hot-fix # 创建一个hot-fix分支,然后使用-v查看 # 可以看到除了ma ...

  5. git分支的创建与合并

    在git中提倡使用分支,这就涉及到了分支的创建和合并.在git中我们的每次提交类似于一个链表,按照时间顺序向下排列,大约画了一个图,每个小圆圈代表一次提交,在git中有有一个主分支master,我们新 ...

  6. git 分支的创建、合并、删除

          基本概念与命令 分支(branch):每次提交,Git都把提交的内容串成一条时间线,这条时间线就是一个分支 .   git 分支的创建 git branch branchName git ...

  7. Git 分支管理 创建与合并分支

    分支在实际中有什么用呢? 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完再一次提交, ...

  8. git 分支的创建与合并

    首先我们需要先创建一个新的dev分支,然后切换到dev分支: $ git checkout -b dev //命令语句 Switched to a new branch 'dev' //成功执行输出语 ...

  9. git分支管理之解决冲突

    人生不如意之事十之八九,合并分支往往也不是一帆风顺的. 准备新的feature1分支,继续我们的新分支开发: $ git checkout -b feature1 Switched to a new ...

随机推荐

  1. uva12325 暴力枚举

    这题刚开始我就贪心,直接wrong了,贪心适合可以取一个物体部分的题. 还是老实枚举吧,注意枚举要分类,不然可能会超时,还有注意答案是long long AC代码: #include<cstdi ...

  2. UVA1601 状态搜索

    很有意思的一道题,就是迷宫问题的增强版.但是细节很多,有一个技巧就是把每个可以走的位置编号方便状态判重. AC代码: #include<cstdio> #include<cstrin ...

  3. 理解 Git

    Git 如何保存文件 其它版本管理系统通常会保存所有文件及其历次提交的差异(diff / revision),通过 merge 原始文件与各阶段的差异就能获取任何版本的状态 而 Git 保存的是每一次 ...

  4. tox环境安装

    ubuntu 下安装tox环境 1.apt-get install pip 2.pip install tox 3.git git clone https://github.com/openstack ...

  5. Linux定时及mysql远程

    (1)crontab crontab使用方法: (1)使用命令 crontab -e 然后直接编辑定时脚本. 这样执行以后,属于用户自定义的,会被写到 /var/spool/cron 目录下,生成一个 ...

  6. ui设计未来前景怎么样?ui设计这个行业怎么样?

    千锋UI设计师培训不仅有正常的培训课程,还为学员提供了UI+产品经理周末提升班,目的是为了给那些有基础的UI设计师提高能力.今天要为大家说的是一位千锋UI设计师的故事. 大家好,我是千锋UI设计培训部 ...

  7. SRE之道:创造软件系统来维护系统运行

    引言:本文作者Ben Treynor Sloss,Google 运维团队的高级副总裁,SRE 名称的发明者,在这里提供了他对SRE 的定义.  本文选自<SRE:Google运维解密>. ...

  8. 编译、裁剪、安装、删除 Ubuntu内核和模块管理

    一.下载最新内核文件 地址:http://www.kernel.org,一般下载Full Source版本. 下载完毕后,放到任意文件夹中,使用命令: tar jxvf linux-x.x.x.tar ...

  9. 第II篇PCI Express体系结构概述

    虽然PCI总线取得了巨大的成功,但是随着处理器主频的不断提高,PCI总线提供的带宽愈发显得捉襟见肘.PCI总线也在不断地进行升级,其位宽和频率从最初的32位/33MHz扩展到64位/66MHz,而PC ...

  10. 嵌入式 Linux 与linux启动时自动加载模块

    一.在ARM linux 下,一般而言,产品在启动的过程中应该加载模块,最简单的方法是修改启动过程的rc脚本(/etc/init.d/rcS),增加ismod /../xxx.ko这个命令.例如:加载 ...