(Git学习)解决冲突

人生不如意之事十之八九,合并分支往往也不是一帆风顺的。

准备新的feature1分支,继续我们的新分支开发:

 
  1. $ git checkout -b feature1

  2. Switched to a new branch 'feature1'

修改readme.txt最后一行,改为:

Creating a new branch is quick AND simple.

feature1分支上提交:

 
  1. $ git add readme.txt

  2. $ git commit -m "AND simple"

  3. [feature1 14096d0] AND simple

  4. 1 file changed, 1 insertion(+), 1 deletion(-)

切换到master分支:

 
  1. $ git checkout master

  2. Switched to branch 'master'

  3. Your branch is ahead of 'origin/master' by 1 commit.

  4. (use "git push" to publish your local commits)

Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。

master分支上把readme.txt文件的最后一行改为:

Creating a new branch is quick & simple.

提交:

 
  1. $ git add readme.txt

  2. $ git commit -m "& simple"

  3. [master 5dc6824] & simple

  4. 1 file changed, 1 insertion(+), 1 deletion(-)

现在,master分支和feature1分支各自都分别有新的提交,变成了这样:

这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,我们试试看:

 
  1. $ git merge feature1

  2. Auto-merging readme.txt

  3. CONFLICT (content): Merge conflict in readme.txt

  4. Automatic merge failed; fix conflicts and then commit the result.

果然冲突了!Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件:

 
  1. $ git status

  2. On branch master

  3. Your branch is ahead of 'origin/master' by 2 commits.

  4. (use "git push" to publish your local commits)

  5. You have unmerged paths.

  6. (fix conflicts and run "git commit")

  7. (use "git merge --abort" to abort the merge)

  8. Unmerged paths:

  9. (use "git add <file>..." to mark resolution)

  10. both modified: readme.txt

  11. no changes added to commit (use "git add" and/or "git commit -a")

我们可以直接查看readme.txt的内容:

 
  1. Git is a distributed version control system.

  2. Git is free software distributed under the GPL.

  3. Git has a mutable index called stage.

  4. Git tracks changes of files.

  5. <<<<<<< HEAD

  6. Creating a new branch is quick & simple.

  7. =======

  8. Creating a new branch is quick AND simple.

  9. >>>>>>> feature1

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们修改如下后保存:

Creating a new branch is quick and simple.

再提交:

 
  1. $ git add readme.txt

  2. $ git commit -m "conflict fixed"

  3. [master cf810e4] conflict fixed

现在,master分支和feature1分支变成了下图所示:

用带参数的git log也可以看到分支的合并情况:

 
  1. $ git log --graph --pretty=oneline --abbrev-commit

  2. * cf810e4 (HEAD -> master) conflict fixed

  3. |\

  4. | * 14096d0 (feature1) AND simple

  5. * | 5dc6824 & simple

  6. |/

  7. * b17d20e branch test

  8. * d46f35e (origin/master) remove test.txt

  9. * b84166e add test.txt

  10. * 519219b git tracks changes

  11. * e43a48b understand how stage works

  12. * 1094adb append GPL

  13. * e475afc add distributed

  14. * eaadf4e wrote a readme file

最后,删除feature1分支:

 
  1. $ git branch -d feature1

  2. Deleted branch feature1 (was 14096d0).

工作完成。

小结

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log --graph命令可以看到分支合并图

git(16)---解决冲突相关推荐

  1. git mergetool 解决冲突的问题

    git mergetool 解决冲突的问题 参考文章: (1)git mergetool 解决冲突的问题 (2)https://www.cnblogs.com/toward-the-sun/p/659 ...

  2. git如何解决冲突?

    git如何解决冲突? 一.什么情况下会产生冲突? 二.冲突的解决 三.撤销合并 一.什么情况下会产生冲突? 当多个开发者同时使用或者操作 git 中的同一个文件时: 多个分支代码合并到一个分支: 多个 ...

  3. Git | 如何解决冲突 (BranchName|MERGING)

    Git 如何解决冲突 (遇到好的方式方法,还会继续更新) 冲突后本地代码会变成(你的分支|MERGING) 1, git reflog 查看提交记录,找到想要退回的某个提交的headerId git ...

  4. git如何解决冲突(代码托管在coding)

    分支A提交合并请求到分支B,有冲突 git fetch code 拉取远程仓库的其他分支代码(我拉代码是remote add code所以这里是code,可以用git remote查看) git ch ...

  5. git命令解决冲突解决

    第一种情况: 线上为master主分支以及自己的分支 my_branch 本地有master主分支以及自己的分支 my_branch 本地自己分支开发完之后 1.先提交本地自己分支开发代码 git a ...

  6. git冲突解决,使用git命令解决冲突【通用版】

    文章目录 一.准备 1-1.dev分支里面的README 1-2.master分支里面的README 1-3.说明 二.冲突 2-1.合并结果 2-2.解决冲突一(有master分支操作权限) 2-2 ...

  7. git rebase解决冲突

    同一分支不同仓库引起的冲突 A,B仓库分别对同一文件做了修改后,各自提交,此时后面提交的在push时就会出现冲突 解决步骤: 1.git fetch(下载所有分支的最新的代码) 2.git rebas ...

  8. android Studio Git命令--解决冲突和产看提交内容,android输入法开发软键盘切换

    显示Sample commit6305aa81a265f9316b606d3564521c43f0d6c9a3 Author:XXX Date:   Thu Nov 3 11:38:15 2011 + ...

  9. Git 版本管理 解决冲突

    首先克隆分支: :git clone https://github.com/LLLUZHAO/Test.git 正克隆到 'Test'... remote: Enumerating objects: ...

最新文章

  1. 内存分配策略(一):JVM栈桢及方法调用详解
  2. 从零入门 FreeRTOS 操作系统之任务的概念
  3. 机器学习(八)——在线学习、K-Means算法、混合高斯模型和EM算法
  4. 不是所有人都懂这样做,你若做了就能高升!
  5. 软件工程15 个人阅读作业1
  6. 诗与远方:无题(三十)- 凄凉缘空
  7. 【Hbase】HBase数据快速导入之ImportTsv
  8. app4788usvod3html,ROBOHAND RPLC-3
  9. Rize - 一个可以让你简单、优雅地使用 puppeteer 的 Node.js 库
  10. Halo-dream 博客小程序
  11. iphone同步android短信,如何从iPhone导入短信到Android手机?
  12. Navicat Premium 连接oracle 提示ORA-01017:用户名/口令无效;登陆被拒绝
  13. Scala:try match
  14. Python ISBN号概述,校验位计算,10位-13位转换,验证,连字符,及常用库isbnid,isbnlib,isbntools的使用
  15. mo管理器java_Android开发之通过包管理器获取安装应用信息
  16. 【云原生系列】第一讲:什么是云计算
  17. scroll-top 设置微信小程序滚动条位置
  18. 大神揭秘:苹果 ARKit 凭什么碾压对手?
  19. Eal:Error reading from file descriptor 33: Input/output error
  20. GDUT_排位赛题解报告_第5场_A. 唯一排列

热门文章

  1. Linux PPP实现源码分析-2
  2. 在ROS中使用Neato XV-11 激光雷达
  3. php打印预览jquery,JS实现浏览器打印、打印预览示例
  4. load()是python文件操作的函数_python基础总结(函数,文件操作)
  5. 【小项目】Axios 实现前后端交互
  6. 【Java数据结构与算法】第三章 双向链表和约瑟夫问题
  7. SDOI 2009 BIll的挑战
  8. 基于Tiles框架Struts框架的UI 设计—几种组织HTML和JSP视图组件
  9. 跟随冒号畅游编程世界
  10. 书籍推荐:零基础入门学习Python