Git/GitHub---Git(rebase)命令使用
Git(rebase)命令使用
文章来自本人公众号:公众号文章--Git(rebase)命令使用
rebase的三个应用场景
第一个应用场景(合并版本)
例:1.1.1创建文件夹,以及文件,并初始化交给git管理,生成版本
-
创建a.txt生成第一个版本(图示:例1.1)
-
创建b.txt生成第二个版本
-
创建c.txt生成第三个版本
-
创建d.txt生成第四个版本
-
图示:例1.2
例1.1
例1.2
例:1.1.2合并版本号
-
git rebase -i HEAD~3(合并命令方式一:最近的三条记录合并)
-
git reabse -i 版本号 (合并命令方式二:版本号下一条到最后一条合并)
-
开始合并版本3到版本5,共三条(图示:例1.3)
-
自动跳到文件进行修改(改成s的是合并到pick的中)(图示:例1.4)
-
修改后会再次自动跳转(图示:例1.5,红框中内容可以自定义)
-
本人自定义为v3 & v4 & v5,修改成功(图示:例1.6)
-
git log查看,图示:例1.7
例1.3
例1.4
例1.5
例1.6
例1.7
第二个应用场景
例:2.1.1创建文件夹,以及文件,并初始化交给git管理,生成版本
-
创建a.txt生成第一个版本(图示:例2.1)
-
创建b.txt生成第二个版本
-
创建c.txt生成第三个版本
-
创建d.txt生成第四个版本
-
图示:例2.2
例2.1
例2.2
例:2.1.2 创建分支
-
创建分支dev(图示:例2.3)
例2.3
例:2.1.3 切换回master分支,创建两个新的版本
-
切换分支创建版本(图示:例2.4)
例2.4
例(重点)2.1.4:使用rebase操作
-
切换到dev分支,创建dev.txt,并提交生成版本(图示:例2.5)
-
切换到master分支,合并dev分支(图示:例2.6)
例2.5
例2.6
rebase合并对比图:
第三个应用场景
例:3.1.1 创建一个文件夹,模拟在公司开发了一个功能开发了50%,生成版本,但是忘记推送代码
-
创建远程仓库(图示:例3.1)
-
创建文件,生成版本(图示:例3.2,3.3)
-
创建分支,创建dev.txt,生成版本(图示:例3.4)
-
推送master,推送dev(图示:例3.5)
-
编辑dev.txt,生成版本不推送(图示:例3.6)
例3.1
例3.2
例3.3
例3.4
例3.5
例3.6
例:3.1.2 创建一个新的文件夹,模拟在家继续开发
-
创建文件,克隆项目,进入项目目录(图示:例3.7)
-
进入dev分支,编辑dev.txt(图示:例3.8)
-
生成一个版本,推送到远程仓库(图示:例3.9)
例3.7
例3.8
例3.9
例:3.1.3 回到公司继续开发
-
拉取最新代码git fetch origin dev(图示:例3.10)
-
执行git rebase origin/dev会产生冲突(图示:例3.11)
-
解决冲突 (图示:例3.12,3.13)
-
继续执行rebabse(图示:例3.14)
-
直接推送(图示:例3.15)
例3.10
例3.11
例3.12(手动解决冲突)
例3.13(解决冲突)
例3.14
例3.15