git merge和git rebase总结
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,完成合入(变基)
git merge和git rebase总结的更多相关文章
- Git merge 与 git rebase的区别
Git merge的用法: git merge Dev // Dev表示某分支,表示在当前分支合并Dev分支 git merge -m "Merge from Dev" Dev ...
- git merge与 git rebase区别及实例
接Git分支创建与合并,在分支合并时,有两种方式:git merge 和git rebase. git merge:将两个分支,合并提交为一个新提交,并且新提交有2个parent. git rebas ...
- git第七节---git merge和git rebase
# git merge和git rebase 都可以进行分支合并 #git merge 合并后保留记录两个分支的记录 #git rebase合并后会展示成一个分支的记录,另一个分支的提交实际生成了一个 ...
- git merge和git rebase的区别
git merge是用来合并两个分支的.# 将b分支合并到当前分支git merge b git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作.例如,假设我 们有 ...
- git merge和git rebase的区别和异同
1.git merge和git rebase作用差不多,都是将远程代码和本地代码合并 2.git merge和git rebase作用差不多,都是将远程代码和本地代码合并 3.git merge ...
- git merge 及 git rebase的区别
Git上合并代码有git merge 及 git rebase 两种方式. 前置知识点 Master分支:首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上发布. ...
- 【译文】Git merge 和 Git rebase比较
[译文]Git merge 和 Git rebase比较 原创: 胡江华 胡同学和朋友们的成长日记 2017-03-22 git rebase 这个命令经常被人认为是一种Git巫术,初学者应该避而远之 ...
- git merge 与 git rebase的区别?
一,git merge 与 git rebase的区别 1,git merge 例如: master分支合并dev分支,git将两个分支dev和master上的所有commit , 按照提交时间的先后 ...
- git pull、git fetch、git merge、git rebase的区别
一.git pull与git fetch区别 1.两者的区别 两者都是更新远程仓库代码到本地. git fetch相当于是从远程获取最新版本到本地,不会自动merge. 只是将远程仓库最新 ...
- git merge 和 git rebase 小结
Git merge是用来合并两个分支的. git merge b # 将b分支合并到当前分支 同样 git rebase b,也是把 b分支合并到当前分支 ---------------------- ...
随机推荐
- 有关于weiphp2.00611上传sae的一些注意(图片上传解决方案)
一.安装中注意的事项 安装时使用的系统为weiphp2.0611 版本 1.将所有文件上传到代码库中 2.按照步骤进行安装weiphp,注意在数据库导入的时候需要手动导入. ...
- 配置svn,httpd启动报错 Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
查看httpd的状态,发现80端口被占用,因为我的nginx的80端口. systemctl status httpd.service 解决: 把Apache的端口该成别的端口 vi /etc/ht ...
- HDFS数据平衡
一.datanode之间的数据平衡 1.1.介绍 Hadoop 分布式文件系统(Hadoop Distributed FilSystem),简称 HDFS,被设计成适合运行在通用硬件上的分布式文件 ...
- Day01 对前端的初步了解
了解了工作性质以及流程 产品经理+UI+前端程序员+后端程序员+测试人员 了解了工作会做到的项目 pc端项目,后台管理系统,APP,小程序,移动端网页 了解了后续需要学到的课程 HTML+CSS Ja ...
- P1189 SEARCH—搜索
将这题加进来的原因 因为他的优化令人眼前一新! 题目传送门() 相似的题目之 血色先锋队 ↑这一题也要用到标记数组 优化!!! 对于一个位置, 如果他在同样的深度再一次被访问,那他接下来所走的路径,所 ...
- 正睿七连测 DAY5 T2
题是水题,也不难想,本来是想打暴力先过个小数据, 本来就想再搞搞优化试试能不能过,毕竟这个题理论上 O( $n^2$ ) 是能过的 题干 主要是觉得这个优化很有可取之处,本来超时,一加这个优化就好很多 ...
- ubuntu 20.04 安装 vim8.2
由于ubuntu 20.04自带的vim版本比较老了,有些新装的插件适配不上,所以需要安装最新版本的vim.在网上找了很久也没有比较官方的安装教程所以记录一下. 安装依赖库 sudo apt inst ...
- jdbc 05: 查询结果集
jdbc连接mysql,查询结果集 package com.examples.jdbc.o5_结果集查询; import java.sql.*; import java.util.ResourceBu ...
- Java开发学习(十五)----AOP入门案例及其工作流程解析
一.AOP简介 1.1 什么是AOP AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构. OOP(Object Oriented ...
- PySide6/PyQt开发xml编辑器(1)
QTreeWidget折叠子项(折叠当前项的所有子项) 本文仅供本人知识总结使用,所以内容会比较浅显,不喜勿喷. 目录 QTreeWidget折叠子项(折叠当前项的所有子项) 目录 一.仅折叠子项 二 ...