冲突解决:

先尝试制造冲突:

首先我:git checkout -b mzy
创建一个mzy的分支
然后在其中修改readme.txt文件,随便加上一点东西。
vim readme.txt   write... wq

然后:

git add readme.txt
git commit -m "mzy分支上修改"

这时我的master分支还是指向上一个版本的,但是我的mzy分支已经迭代了一个版本了。
但是现在如果切换回master分支,并且使用git merge mzy,这时因为master和mzy仍然
只是简单的前后相邻的两个单线性版本,所以直接merge不会有任何问题。


但是我现在要做的是制造冲突!
所以我先git checkout master,首先切换到了master分支
我又vim readme.txt,把其中的内容随便修改了一下。
然后在master分支上:

git add readme.txt
git commit -m "在master主分支上修改提交readme.txt"

现在关系就复杂了,就不是简单的线性关系了,而是有了分叉。

现在再次,在master主分支上试图合并mzy分支:
git merge mzy,发现:

$ git merge mzy
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

告诉我们,当前分支和我们要合并的mzy分支有冲突,必须手动合并,自动合并失败了!
git status,查看当前git的状态

$ git status
On branch master
You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Unmerged paths:(use "git add <file>..." to mark resolution)both modified:   readme.txtno changes added to commit (use "git add" and/or "git commit -a")

发现现在提示,在我们尝试合并master分支和mzy分支的时候,因为其中对相同的readme.txt文件有修改所以不能自动合并
提示有unmerged paths,让我们手动去解决它。


然后我们打开 readme.txt,发现其中有:

git 是一个好工具,就是门槛比较高。
<<<<<<< HEAD
这是我在master上add,commit的内容
=======
这是我在mzy上add,commit的内容
>>>>>>> mzy

可以看出git在这种无法自动处理的冲突上,使用了
<<<<<<<
=======
>>>>>>>
进行标识
<<<<<<<HEAD:固定的表示当前HEAD指向的,不一定是master。
=======:用于冲突之间分隔
>>>>>>>:被合并分支名称
内容一定是当前分支在HEAD下,被合并分支在后面。

手动修改这些文件,去掉其中的分隔符号,并且把内容修改成你想要的样子,
再次 git add readme.txt,git commit -m "合并分支mzy,并且解决了冲突"

但是要注意,只有当前分支会产生修改,被合并的分支是不会发生改变的!

现在提示:[master 3b15b8e] conflict fixed 合并成功!


我们可以让日志显示格式改一改,看到其中的合并步骤:
git log --graph --pretty=oneline --abbrev-commit
<
或者直接使用简单的:git log --graph[这样会显示很长]
或者:git log --graph --pretty=oneline
[这样会把全部显示commitId,没有reflog那种简洁]
最好的还是:
git log    --graph      --pretty=oneline   --abbrev-commit
查看日志  分支合并图    一行显示       缩减commitId的长度

>

$ git log --graph --pretty=oneline --abbrev-commit
*   3b15b8e (HEAD -> master) conflict fixed
|\
| * dbee345 (mzy) AND simple
* | b1d6af5 在主分支上进行提交
|/
* fd4ceae 修改了readme.txt文件
* c5687b8 删除test.txt[C
* b71048d 提交test.txt
* 88726c9 提交了readme.txt中的修改
* e4deff9 git change readme.txt add tracks change of files
* 9a3670d add LICENSE to res
* c3e7dc7 加上了GPL
* c17e52f 加上了一些新玩意儿distributed
* 9f6ffb9 第一次提交readme.txt

finish, 冲突解决!

问:

是不是如果没有 git merge mzy,那么status就不会显示冲突?

是的,如果你的分支都在各自工作,没有merge,就算相同的文件中都各自有修改,git status都是不会提醒的,
只有你合并的时候,才会出现冲突,各个分支其实是互不干扰的!

如果,是修改的两个不同的文件还会有冲突吗?但是应该还是有分支的吧?不是线性的?

不会有冲突,是的,还是发散出了分支的,但是不会冲突了,因为修改的是不同的文件!
当我们在master上进行merge分支的时候:
$ git merge mzy
Already up to date.(已经是最新的了。)
直接就提示成功了!

转载于:https://www.cnblogs.com/mzywucai/p/11053349.html

mzy git学习,分支冲突,以及冲突解决(五)相关推荐

  1. git的分支合并与冲突

    一.分支合并 1.切换到主分支 git checkout master 2.合并分支 git merge 分支名 git push 注: 当main分支上如果已经新增或修改了,则会跳出如下: 你可以选 ...

  2. 139.00.005 Git学习-分支管理

    @(139 - Environment Settings | 环境配置) 一.Why? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交, ...

  3. Git学习--分支(branch、merge、rebase)

    分支: 你可以把他理解为指针,假设一开始master和test分别是origin下的两个分支,都指向file这个文件夹,随后A,B分别使用master和test对file进行更新,他们更新的版本我们记 ...

  4. mzy git学习,初识git(一)

    GIT学习 git工作区.暂存区.本地库.远程库 工作区:实际上我们工作的地方,进行写代码或者文件的地方. 暂存区:我们执行了git add 操作之后,就会被提交到暂存区. 本地库:其实最后我们需要执 ...

  5. Git学习总结(15)——解决Win10 Git图标不显示问题

    解决windows系统从低版本升级至Win10以后,Git图标不显示问题 Windows Explorer Shell 支持的 Overlay Icon 最多 15 个,本来大家是按照音序排序的,但是 ...

  6. Git学习系列(六)解决分支冲突及分支管理策略

    2019独角兽企业重金招聘Python工程师标准>>> 解决分支冲突 通常当Git无法自动合并分支时,就必须首先解决冲突后,再提交. 下面咱们先创建一个分支并切换到b1分支: 修改咱 ...

  7. git学习(五)分支操作和解决冲突

    分支的作用 协同开发 开发失败不会对主分支有影响 大胆创新 修复bug不会使得服务器停止工作(24小时网站而言) 创建新分支 在新建git,也就是git init时会自动创建master分支,也就是主 ...

  8. idea+git合并分支解决冲突及详解步骤

    Git分支详解参考: https://blog.csdn.net/su1573/article/details/91988523 1. 切换分支 1)在idea页面右下角点击分支名 2)在git 分支 ...

  9. idea+git合并分支解决冲突及详解

    1.什么是冲突 冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致.读起来有点绕,结合下面的案例理解. 从上面对冲突的定义来看,冲突时发生在同一个文件上的. 2.生产上冲突的场景 常见冲突的 ...

  10. git 阿善有用 git 的分支合并 冲突的解决

    今日内容:1) Git基本介绍2) Git安装操作3) 如何使用Git管理版本库操作4) 远程仓库: 码云5) 分支管理6) 在IDEA中如何git--- 一上午的时间7) 主题一: 访问咨询主题看板 ...

最新文章

  1. http头部消息中的cache-control解释
  2. selector + drawable 多状态图形
  3. 微信支付代金券开发包分享
  4. 设置placeholder无效解决办法
  5. 更有效的加载较大的Bitmap
  6. OpenCV4.0+VS2017完整安装配置过程(详细!)
  7. WPF地区选择控件(内附下载地址)
  8. spring IOC快速入门,属性注入,注解开发
  9. 进程间通信——系统调用setjmp()与longjmp()
  10. 拓端tecdat|在Amazon Web Services中使用R语言运行模拟
  11. 前后端数据交互(七)——前端跨域解决方案(全)
  12. 计算机论文物业管理系统,计算机毕业论文-小区物业管理系统.doc
  13. 【数学建模】CUMCM-2014A 嫦娥三号软着陆过程 避障阶段图像处理
  14. 我的世界java放大化是什么_我的世界:你玩过神奇的放大化种子吗?官方:这些东西非常吃资源...
  15. w ndows7旗舰版镜像下载,win7旗舰版32位原版iso
  16. css眨眼效果,CSS3 精巧的笑脸/眨眼变形动画
  17. 【笔记】编译原理——第三章 词法分析
  18. 程序员修炼之路(十四)IT外企那点儿事--也说跳槽
  19. 如何通过JavaScript获取搜索引擎搜索关键词
  20. MapX 控件在C# 中的应用 (一)

热门文章

  1. 亚马逊结算一览(C#项目)
  2. 如何在被保护的工作表(Worksheet)中使用Group Outlining
  3. 主成分分析逆变换_主成分分析(PCA)
  4. java 正态分布数_生成正态分布的数
  5. 深层网络梯度消失-爆炸原因
  6. 指针 上 :什么是指针,指针类型,指针运算等等
  7. 本机ip地址、本机DNS查询工具地址
  8. c语言结构体编程时钟,c语言简单数学时钟(结构体,指针),求大佬帮助
  9. 计算机病毒进化趋势,人类进化趋势是什么?
  10. Exchange邮件服务器渗透