git merge和git rebase总结
2024-10-19 19:59:12
dev分支
* da349ef (dev) e
* 75350bc d
* 63cbbb8 c
* c6509a5 b
* 13405af a
文件可能会发生冲突,需要解决一下
aaaaaaaaa
bbbbbbbbb
ccccccccc
<<<<<<< HEAD
fffffffff
ggggggggg
=======
ddddddddd
eeeeeeeee
>>>>>>> dev
最后结果
* 85ef130 (HEAD -> master) Merge branch 'dev'
|\
| * da349ef (dev) e
| * 75350bc d
* | b553464 g
* | 6d56d3d f
|/
* 63cbbb8 c
* c6509a5 b
* 13405af a
可以看出,merge 有保留dev分支的痕迹,相当于创建了一个85ef130 commit 并同时指向了da349ef (dev) e和
b553464 g
再看rebase是如何处理的
Master 分支
* 2a4e835 (HEAD -> master) d
* 706b742 c
* 4807917 b
* 59a582d a
dev 分支
* 0a6ecdd (HEAD -> dev) f
* 42b6702 e
* 706b742 c
* 4807917 b
* 59a582d a
使用rebase合并分支
在master 上执行
git rebase dev
(着重理解这句话)相当于将master分支的代码向dev分支合并,在将master的指针指向dev上新创建的commit
可能会有冲突,解一下
aaaaaa
bbbbbb
cccccc
<<<<<<< HEAD //这里是dev 的内容
eeeeee
ffffff
=======
dddddd
>>>>>>> d // 这里是master的内容
冲突时,冲突部分与merge不同,相当于将master的差异代码往dev合并,然后产生了一个新的commit,之后将master变基到这个新的commit-id 上
解决冲突后执行 git add <conflicted_files> ,然后执行git rebase --continue
rebase操作是持续执行的,如果还有冲突,继续执行上述操作(好处是:也方便一个冲突一个冲突的解决)
rebase 合并成功后(有的也翻译为变基),在master上查看git日志
* ff1a394 (HEAD -> master) d //这里是新创建的一个commitid,commit注释为d master变基到此
* 0a6ecdd (dev) f
* 42b6702 e
* 706b742 c
* 4807917 b
* 59a582d a
可以看出,在master分支执行git rebase dev 是将当前分支的代码往dev合入,并最后将master的指针指向到在dev链上新创建的commit,完成合入(变基)
最新文章
- .net实现与excel的数据交互、导入导出
- jQuery插件(右击事件)
- BC之Claris and XOR
- SAP第一轮面试总结
- JDK 伪异步编程(线程池)
- 如何快速读懂大型C++程序代码
- JavaScript实现在textbox输入时自动去数据库匹配并找出类似值列出,选择后记得将值填入本textbox及下一个textbox
- divmod数字处理函数
- 浅析final关键字
- python学习——读取染色体长度(一、简化问题)
- 用JS制作《飞机大作战》游戏_第1讲(素材查找和界面框架搭建)-陈远波
- Harbor 学习分享系列2 - Harbor项目介绍
- webpack入门指南-step03
- 样式缩写&mdash;&mdash;css技巧(一)
- c#调用cmd
- HTML5开发之 -- 模态突出窗(bootstrap)
- Beta阶段第1周/共2周 Scrum立会报告+燃尽图 03
- Win32 配置文件用法
- MysQL使用一高级应用(上)
- imx6q Xorg下Qt应用开机自启动及添加桌面快捷启动图标的方法
热门文章
- 关键字——this,super,static,final
- Python收集这些视频只是单纯的想做做壁纸,大家不要误会
- Python:socket编程教程
- ERROR: manifest for elasticsearch:latest not found: manifest unknown: manife
- Could not transfer artifact xxx from/to xxx解决方案
- 【Azure Developer】记录一次使用Java Azure Key Vault Secret示例代码生成的Jar包,单独运行出现 no main manifest attribute, in target/demo-1.0-SNAPSHOT.jar 错误消息
- Map集合概述和Map常用子类
- docker容器管理操作
- javaweb 02: servlet
- [RCTF2015]EasySQL-1|SQL注入