问题描述
随着项目的进行,我们可能会进行多次的commit,其中,可能有部分commit是没什么作用的(可能只是每天进行一次commit,防止代码丢失什么的)。
对于这些无用的commit,一方面,会给查看历史和合并分支造成困难;另一方面,像我这样有强迫症的人总是想着把它清理掉。这里所说的清理指的是将多个commit合并为一个commit。
如何合并多个commit呢?rebase可以实现这个功能。
rebase基本用法
rebase常用的格式如下:
git rebase -i [start commit id] [end commit id] #指定合并范围
git rebase -i HEAD~n #n表示合并最近提交的n次commit
将指定commit id范围内(左开右闭)的commit进行合并,[end commit id]省略的情况下表示HEAD。
例子
如果我要写一份文档,内容是“Hello World, I am xxx”,每天写一个单词并commit,得到的git log如下:
6c93245 (HEAD -> master) write xxx
4283f81 write am
56fb5d7 write I
91346a3 write world
70aa8b9 write Hello
b9c694c init repo
对于这几个提交,并没有太大的意义,看着挺让人烦躁的,如果能使用一个commit就好了。
使用以下命令进行commit合并