-i指的是进入rebase的交互式模式。
场景:一个feature往往会有多个commit,但是如果直接把分支push到远程,远程会有很多commit,事实上,远程的每一个commit应该代表里程碑,不应该太细,所以在push前最好能够压缩本地的commit为一个。
假设:
基于base版本,有了两个提交,最终想压缩为一个,那么就需要rebase到“base”版本,rebase的版本后面就会只存在一个版本。接着就会进入交互式,让选择如何处理后面的多个commit:
最终只pick一个,其余的填为s,保存。
再重新编辑提交信息,结果:
就只包含了一个commit,这时候再push就清爽了很多。
貌似pick的必须是要rebase的那个commit之后的提交,否则会报错