这是我参与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
图一flex
终于优秀的小明开发完了,可是他有代码洁癖,每次开发完,都会去抽离本身的方法,看看代码有没有更精简的地方,他连提交记录都要作到极致优美。url
图二spa
git log
, 找到这三次提交,固然也可使用更加精准的git reflog
,二者具体的区别就不在这篇文章进行赘述。git rebase -i HEAD~3
,命令中的3表明最后的三次提交;i
进入编辑模式,将最后两个pick
变动为s
,按下esc
,手动输入:wq
,合并的第一步就成功了,接下来要为此次的合并修改一下提交记录。i
进入编辑模式,将不须要的删除或者前面添加#
表示注释这一行,编辑结束以后,按下esc
,手动输入:wq
,合并就成功了 这里咱们就要对比
git rebase
和 git merge
:3d
话很少说啦,直接上结果:
先看咱们最喜闻乐见、耳熟能详的git merge
:
再看git rebase
呈现的效果:
然而实际的操做是十分的简单: 在two
分支下执行:git rebase one
当前分支的全部提交都会前置到最前面,就能够成为一条优美的提交记录。
不再用忍受这爱与恨错综复杂的“情感交织”了
出现游离分支的话请参考:www.cnblogs.com/yxhblogs/p/…