Git rebase -i
Git rebase -i
rebase 的作用简要概括为:可以对某一段线性提交历史进行编辑、删除、复制、粘贴;因此,合理使用 rebase 命令可以使我们的提交历史干净、简洁!
使用场景
当你想把多个 commit
合并成一个 commit
时
使用前:
1 |
|
使用后:
1 |
|
01 git rebase -i
其中 -i => –interactive
(startpoint, endpoint] 前开后闭,可以省略 endpoint ,默认指向当前的 HEAD
1 |
|
1 |
|
输入完命令后,会进入交互模式(下边编辑器)
02 进入编辑器
黄色区域,是我们本次需要 commit 的所有提交
pick e7ace44 第二次提交
s 1d911be 第三次提交
s 77e3eca 第四次提交
蓝色区域,是每条 commit 前的命令的代码说明
pick:保留该 commit(缩写:p)
reword:保留该 commit,但我需要修改该 commit 的注释(缩写:r)
edit:保留该 commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该 commit 和前一个 commit 合并(缩写:s)
fixup:将该 commit 和前一个 commit 合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行 shell 命令(缩写:x)
drop:我要丢弃该 commit(缩写:d)
按:wq
保存退出后,进入备注编辑
03 备注编辑
修改备注,可以修改你想要备注后
按:wq
提交
04 Git log
可以很清晰看到,2、3、4 提交合并成一条提交了
05 扩展
1 |
|
当你和 fork 过来的原仓库产生冲突时,可以使用这个命令,pull
拉取过来的时候,自动帮你 rebase
,
如果没有冲突则合并成功,如果产生冲突后,则在IDE
消除冲突。
另外, rebase
的底层,先 git reset
在进行 git merge
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!