图解 Git rebase 的两大用法

1,000 阅读2分钟

前前言

各位小伙伴八月快乐哈。 我是来自推啊前端团队的展程同学 今天跟大家简要分享一下git rebase

前言

关于 git rebase 大家总是众说纷纭。

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

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


正文

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

用法一:合并多次提交

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

image.png 图一

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

image.png 图二

操作方法:

第一步: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 merge

话不多说啦,直接上结果:

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

image.png

再看git rebase呈现的效果:

image.png

实操环节

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

“爱恨情仇”

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

image.png

投稿来源:juejin.cn/post/699241…