Git分支(5/5) -- 解决合并的冲突

如果两个分支上都对同一个文件进行了修改, 那么就有可能发生冲突.
首先创建一个分支, 并切换到该分支上:

然后修改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) -- 解决合并的冲突的更多相关文章
- Git 基础教程 之 解决合并冲突
① 解决冲突 把Git合并失败的文件手动编辑成我们希望的内容 ② 提交,合并完成 场景: ① 新分支feature1,修改后,add, commit: ② 切回master后,修改后,add, ...
- Git 分支 (二)合并
分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流. 你将经历如下步骤:1. 开发某个网站.2. 为实现某个新的需求,创建一个分支.3. 在这个分支上开 ...
- eclipse git 文件状态 及git分支的创建与合并与删除
eclipse里面Git文件状态及图标展示 EGit会出现如下图标,其对应状态及意义如下: 1)忽略[ ignored ]:仓库认为该文件不存在(如bin目录,不需要关注).通过右键Te ...
- 4.Git分支查看&创建&切换&合并
查看分支 git branch -v # 查看分支,*代表当前所在的分支 创建分支 git branch hot-fix # 创建一个hot-fix分支,然后使用-v查看 # 可以看到除了ma ...
- git分支的创建与合并
在git中提倡使用分支,这就涉及到了分支的创建和合并.在git中我们的每次提交类似于一个链表,按照时间顺序向下排列,大约画了一个图,每个小圆圈代表一次提交,在git中有有一个主分支master,我们新 ...
- git 分支的创建、合并、删除
基本概念与命令 分支(branch):每次提交,Git都把提交的内容串成一条时间线,这条时间线就是一个分支 . git 分支的创建 git branch branchName git ...
- Git 分支管理 创建与合并分支
分支在实际中有什么用呢? 假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了. 如果等代码全部写完再一次提交, ...
- git 分支的创建与合并
首先我们需要先创建一个新的dev分支,然后切换到dev分支: $ git checkout -b dev //命令语句 Switched to a new branch 'dev' //成功执行输出语 ...
- git分支管理之解决冲突
人生不如意之事十之八九,合并分支往往也不是一帆风顺的. 准备新的feature1分支,继续我们的新分支开发: $ git checkout -b feature1 Switched to a new ...
随机推荐
- Codeforces103D - Time to Raid Cowavans
Portal Description 给出长度为\(n(n\leq3\times10^5)\)的序列\(\{a_n\}\),进行\(q(q\leq3\times10^5)\)次询问:给出\(x,y\) ...
- Swift 之属性setter、getter方法
Swift 之属性setter.getter方法 Swift中的属性分为两种属性,一种就是计算型属性 一种就是存储型属性,开始我虽然知道这两种属性,但是了解并不深对于他的setter和getter方法 ...
- python环境jieba分词的安装
我的python环境是Anaconda3安装的,由于项目需要用到分词,使用jieba分词库,在此总结一下安装方法. 安装说明======= 代码对 Python 2/3 均兼容 * 全自动安装:`ea ...
- dojo表格的一些属性
dojo表格的属性总结归纳 1.表格无数据提示 data-dojo-props="noDataMessage:'无数据...'" 2.表格的高度自动适应 autoHeight=&q ...
- Java之CyclicBarrier使用,任务等待
1.类说明: 一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point).在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 Cycl ...
- hdu5730 Shell Necklace
重温了这道cdq+FFT 讲白了就是不断对 dp[l~mid] 和 sh[1~r] 进行fft 得到 dp[mid+1~r] #include<bits/stdc++.h> using n ...
- 如何把Excel中的E+数值批量修改为文本格式?
日常工作中,经常会出现这样的情况,当我们把一组数据导入EXCEL表中时,本想让数字在表中全部显示出来,但是表格中却以E+的方式显示,如果数据较少,我们可以用最笨的方法一个一个的点击单元格来实现目的,但 ...
- python datetime 与 time模块
time模块 tmie.strptime :将时间字符串转化为时间类型 格式:time.strptime(string[string[, format]) 结果可以利用利用time.tm_year 返 ...
- eval及json的理解
一,案例一 <br><br> 复制代码 var str = '{"name": "hanzichi", "age": ...
- Postgresql与Oralce常用用法区别总结
日期操作 1. 操作当前日期和时间 oracle Select SYSDATE FROM dual; PostgreSQL Select CURRENT_DATE; Select NOW();返回日期 ...