博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git 分支合并冲突及合并分类
阅读量:6841 次
发布时间:2019-06-26

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

Git 分支合并冲突及合并分类

  1. 分支合并冲突
    ##创建分支datagrandgit checkout -b datagrandSwitched to a new branch 'datagrand'git branch -amaster\* datagrand##在datagrand分支上创建文件echo "this is git file!" > read.txtgit add read.txtgit commit -m "add a new file"git push -u origin datagrand##切换到master分支,建立read.txt文件echo "my name is wtf" > read.txtgit add read.txtgit commit -m "add a new file"git push ##合并分支##在master分支上操作git merge datagrand##说明:这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,报错如下:Auto-merging read.txtCONFLICT (add/add): Merge conflict in read.txtAutomatic merge failed; fix conflicts and then commit the result.##说明:Git告诉我们read.txt文件存在冲突,必须手动解决冲突后再提交。
  2. 解决合并冲突
    ##查看下当前分支状态git statusOn branch masterYour branch is up-to-date with 'origin/master'.You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Unmerged paths:(use "git add 
    ..." to mark resolution)both added: read.txtno changes added to commit (use "git add" and/or "git commit -a")##查看一下readme.txt中的内容cat read.txt<<<<<<< HEADmy name is wtf!=======this is git file!\>>>>>>> datagrand##说明:Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,让我们选择要保留的内容,下面我们修改一下readme.txt,再次提交。##操作步骤如下:vim read.txtgit add read.txtgit commit -m "fixed"[master 935e613] fixedgit statusOn branch masterYour branch is ahead of 'origin/master' by 2 commits.(use "git push" to publish your local commits)nothing to commit, working tree cleancat read.txtthis is git file!##分支合并git merge datagrand##查看合并后状态git statusOn branch masterYour branch is ahead of 'origin/master' by 2 commits.(use "git push" to publish your local commits)nothing to commit, working tree clean
  3. 删除分支
    git branch -d datagrandDeleted branch datagrand (was 3299654).##查看一下分支合并信息git log --graph --pretty=oneline --abbrev-commit \*   935e613 (HEAD -> master) fixed|\| * 3299654 (origin/datagrand) add a new file\* | d4f781c (origin/master) add a file read\* | ddb3e06 Delete read.txt\* | 13bfb1c add a file read|/
  4. 合并分支(普通合并)
    分支合并分为快速合并与普通合并两种模式,普通合并,合并后的历史有分支记录,能看出来曾经做过合并,而快速合并就看不出来曾经做过合并。下面我们来演示一下普通合并:
    ##新创建分支grandgit checkout -b grand##在grand分支上创建文件echo "this is a test file" > readme.txt##git操作git add readme.txtgit commit -m "add merge a line"##切换到master分支git checkout master##普通合并git merge --no-ff -m "merge with no-ff" grand说明:--no-ff参数表示禁用快速合并##查看合并历史git log --graph --pretty=oneline --abbrev-commit\*   96a332a (HEAD -> master) merge with no-ff|\| * 347b403 (grand) add merge a line|/说明:合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支记录,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
  5. 快速合并与普通合并的比较
    (1)快速合并
    Git 分支合并冲突及合并分类
    (2)普通合并
    Git 分支合并冲突及合并分类

转载于:https://blog.51cto.com/wutengfei/2091410

你可能感兴趣的文章
[译] 5 个有趣的 Linux 命令行技巧
查看>>
Core Data的基本使用简介
查看>>
ECCV 2018 最佳论文名单公布,何恺明再添一项论文奖
查看>>
JAVA模板方法设计模式——Java设计模式,写漂亮的代码——
查看>>
Debian 包维护者不满 Debian 开发流程,宣布退出
查看>>
有趣的Tensorflow游乐场以及有趣的思考
查看>>
spring源码-bean之初始化-1
查看>>
不为人知的网络编程(七):如何让不可靠的UDP变的可靠?
查看>>
Android--面试题整理(五)
查看>>
php continue break 用例
查看>>
Scrapy小解
查看>>
移动端小项目的小总结~
查看>>
【新知】 量子技术初探
查看>>
CentOS 6.9关闭NetworkManager服务
查看>>
大型分布式C++框架《二:大包处理过程》
查看>>
当前深度神经网络模型压缩和加速都有哪些方法?
查看>>
高并发场景之RabbitMQ篇
查看>>
改变你对世界看法的五大计算机视觉技术
查看>>
探寻教育信息化着力点,创新四川省教育厅IT管理
查看>>
iptables实现IP地址重定向(转发)
查看>>