git rebase 介绍
rebase在git中是一个非常有魅力的命令,使用得当会极大提高自己的工作效率;相反,如果乱用,会给团队中其他人带来麻烦。它的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用rebase命令可以使我们的提交历史干净、简洁!
使用过程
- 一般来说,本地会有两个分支,一个 master ,一个 dev,我们在 dev 分支上进行开发,假设这种情况下,我们来使用 git rebase 命令。
- 首先,需要切换回 master 分支,pull 一下远程代码,确保代码处于最新状态。
- 之后,切换回 dev分支,输入 git rebase -i master 命令,然后就成功进入历史记录编辑面板。
- -i master的意思是指操作对象是那些自 master 分支记录之后的所有提交,可以换成 origin/master ,不建议这么做。
- 也可以使用 -i HEAD~2,这样表示编辑最近两次提交
历史记录编辑面板如下:
按 i 进入编辑模式,移动光标到对应位置,修改提交记录如下:
各个参数的意义可以自己去查看,一般来说,只会第一个提交使用 p ,其他提交都使用 s,最后只保留一个提交,s 都合并到 p 里面去了。
按 Esc 退出编辑模式。
输入 :wq 保存记录。
保存之后会产生新的提交历史,可以看到,这次只有一条提交记录,但这条提交记录里包含了之前的所有提交信息,再次输入 :wq 保存确认,git rebase 结束,输入 git log 只能看到一条提交记录。
产生冲突
第一次 :wq 保存退出,可能会有冲突,手动解决冲突并 git add .
输入 git rebase --continue 继续 rebase 操作,可以看到已经只有一条提交的合并记录
:wq 退出,rebase 操作结束。