博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决冲突
阅读量:5317 次
发布时间:2019-06-14

本文共 2319 字,大约阅读时间需要 7 分钟。

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

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

$ git checkout -b feature1Switched to a new branch 'feature1'

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

Creating a new branch is quick AND simple.

feature1分支上提交:

$ git add readme.txt $ git commit -m "AND simple"[feature1 75a857c] AND simple 1 file changed, 1 insertion(+), 1 deletion(-)

切换到master分支:

$ git checkout masterSwitched to branch 'master'Your branch is ahead of 'origin/master' by 1 commit.

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

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

Creating a new branch is quick & simple.

提交:

$ git add readme.txt $ git commit -m "& simple"[master 400b400] & simple 1 file changed, 1 insertion(+), 1 deletion(-)

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

git-br-feature1

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

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

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

$ git status# On branch master# Your branch is ahead of 'origin/master' by 2 commits.## Unmerged paths: # (use "git add/rm 
..." as appropriate to mark resolution) # # both modified: readme.txt # no changes added to commit (use "git add" and/or "git commit -a")

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

Git is a distributed version control system.Git is free software distributed under the GPL.Git has a mutable index called stage.Git tracks changes of files.<<<<<<< HEADCreating a new branch is quick & simple. ======= Creating a new branch is quick AND simple. >>>>>>> feature1

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

Creating a new branch is quick and simple.

再提交:

$ git add readme.txt $ git commit -m "conflict fixed"[master 59bc1cb] conflict fixed

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

git-br-conflict-merged

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

$ git log --graph --pretty=oneline --abbrev-commit*   59bc1cb conflict fixed|\| * 75a857c AND simple* | 400b400 & simple|/* fec145a branch test...

最后,删除feature1分支:

$ git branch -d feature1Deleted branch feature1 (was 75a857c).

工作完成。

小结

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

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

 

貌似没有看到有冲突:

第一次试验没有冲突,重新在feature1分支上修改 提交,随后跳转到 master分支上再次进行修改,然后提交,第三 用 merge 合并 feature1分支,出现冲突。

对文件进行修改后,再次提交,commit   conflict fixed 提交,然后处理冲突结束。

记录如下:

转载于:https://www.cnblogs.com/jeremylee/p/5537425.html

你可能感兴趣的文章
IOS实用功能之截图(来自相册和拍照)
查看>>
linux去掉某一字符开头的行
查看>>
# javascript 总结
查看>>
字符串(AC自动机):HDU 5129 Yong Zheng's Death
查看>>
最详细的排序解析,理解七大排序
查看>>
mybatis模糊查询不同写法
查看>>
Linux移植之内核启动过程引导阶段分析
查看>>
辉光UIView的category
查看>>
整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例
查看>>
luogu4389 付公主的背包
查看>>
C++设计模式之工厂模式(1)
查看>>
MySQL数据库入门到高薪培训教程(从MySQL 5.7 到 MySQL 8.0)
查看>>
Java快速入门-01-基础篇
查看>>
XML与web开发-01- 在页面显示和 XML DOM 解析
查看>>
iOS Newsstand Tutorial
查看>>
某互金数据分析笔试题学习
查看>>
734. [网络流24题] 方格取数问题 二分图点权最大独立集/最小割/最大流
查看>>
AngularJS之watch
查看>>
89C51单片机定时器控制的流水灯
查看>>
2808 SCI 发送字节
查看>>