最简单图解 Git rebase 的两大用法

这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战html

前言

关于 git rebase 你们老是众说纷纭。git

路人A: “咱们团队历来不用git rebase,同样没事阿,公司也好好地,还在赚大钱呢?”markdown

路人B:“git rebase大法好!git rebase就是神!”svn

既然存在这么多争议,那么咱们就用最少的时间来一块儿了解一下git rebase究竟能给我带来什么。oop


用法一:合并屡次提交

场景1:小明开发一个极为复杂的功能e,防止代码不可抗力致使代码丢失,优秀的小明用优秀的习惯,天天进行了代码的提交,记录分别为e-1,e-2,e-3;post

image.png 图一flex

终于优秀的小明开发完了,可是他有代码洁癖,每次开发完,都会去抽离本身的方法,看看代码有没有更精简的地方,他连提交记录都要作到极致优美。url

image.png 图二spa

操做方法:

第一步:git log, 找到这三次提交,固然也可使用更加精准的git reflog,二者具体的区别就不在这篇文章进行赘述。

image.png

第二步:根据观察是最后的三次提交,git rebase -i HEAD~3,命令中的3表明最后的三次提交;

image.png

第三步:输入i进入编辑模式,将最后两个pick变动为s,按下esc,手动输入:wq,合并的第一步就成功了,接下来要为此次的合并修改一下提交记录。

image.png

第四步:输入i进入编辑模式,将不须要的删除或者前面添加#表示注释这一行,编辑结束以后,按下esc,手动输入:wq,合并就成功了

image.png

image.png

用法二:将错乱交叉的提交记录变为一条优美的直线

image.png 这里咱们就要对比git rebasegit merge3d

话很少说啦,直接上结果:

先看咱们最喜闻乐见、耳熟能详的git merge:

image.png

再看git rebase呈现的效果:

image.png

实操环节

然而实际的操做是十分的简单: 在two分支下执行:git rebase one 当前分支的全部提交都会前置到最前面,就能够成为一条优美的提交记录。

“爱恨情仇”

不再用忍受这爱与恨错综复杂的“情感交织”了

image.png

出现游离分支的话请参考:www.cnblogs.com/yxhblogs/p/…

相关文章
相关标签/搜索