这是我参与8月更文挑战的第1天,活动详情查看:8月更文挑战
前言
关于 git rebase
大家总是众说纷纭。
路人A: “我们团队从来不用git rebase
,一样没事阿,公司也好好地,还在赚大钱呢?”
路人B:“git rebase
大法好!git rebase
就是神!”
既然存在这么多争议,那么我们就用最少的时间来一起了解一下git rebase
究竟能给我带来什么。
用法一:合并多次提交
场景1:小明开发一个极为复杂的功能e
,防止代码不可抗力导致代码丢失,优秀的小明用优秀的习惯,每天进行了代码的提交,记录分别为e-1
,e-2
,e-3
;
图一
终于优秀的小明开发完了,但是他有代码洁癖,每次开发完,都会去抽离自己的方法,看看代码有没有更精简的地方,他连提交记录都要做到极致优美。
图二
操作方法:
第一步:git log
, 找到这三次提交,当然也可以使用更加精准的git reflog
,两者具体的区别就不在这篇文章进行赘述。
第二步:根据观察是最后的三次提交,git rebase -i HEAD~3
,命令中的3代表最后的三次提交;
第三步:输入i
进入编辑模式,将最后两个pick
变更为s
,按下esc
,手动输入:wq
,合并的第一步就成功了,接下来要为这次的合并修改一下提交记录。
第四步:输入i
进入编辑模式,将不需要的删除或者前面添加#
表示注释这一行,编辑结束之后,按下esc
,手动输入:wq
,合并就成功了
用法二:将错乱交叉的提交记录变为一条优美的直线
这里我们就要对比
git rebase
和 git merge
:
话不多说啦,直接上结果:
先看我们最喜闻乐见、耳熟能详的git merge
:
再看git rebase
呈现的效果:
实操环节
然而实际的操作是十分的简单:
在two
分支下执行:git rebase one
当前分支的所有提交都会前置到最前面,就可以成为一条优美的提交记录。
“爱恨情仇”
再也不用忍受这爱与恨错综复杂的“情感交织”了
出现游离分支的话请参考:www.cnblogs.com/yxhblogs/p/…