分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit
将多次commit合并,只保留一次提交历史。
PS:在我练习的时候,将一个文件的代码做了多次修改,而且每次修改都给提交了,这几次改动的目的都一样,比如说修改RADEME.md,但是每次改动的只是一个小小的代码,但是提交历史上的显示看着会很乱,所以需要合并之前的多次提交历史。
1.首先使用git log查看一下提交历史【--oneline作用是将每个提交放在一行显示】
这样在git中看到的是4次提交(更改txt),有点冗余,需要做的是将4次commit合并为一次
2. git 压缩 git rebase -i HEAD~5【这里也可以写为4,如果是4的话,下面修改参数的时候最上面那条也得修改】
该命令执行后,会弹出一个编辑窗口,5次提交的commit倒序排列,最上面的是最早的提交,最下面的是最近一次提交。
【未修改的编辑窗口我没截图,只截了修改了的图,图在下面】
修改第2-4行的第一个单词pick为squash(也可以改为简写"s"),当然看一下里面的注释就理解含义了。
然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。
【最上面那条记录的不能动(因为后面的提交都是基于其上面提交来的)】
修改以后要记得敲下面的命令:
git add .
git rebase --continue
如果你想放弃这次压缩的话,执行以下命令:
git rebase --abort
如果没有冲突,或者冲突已经解决,则会出现如下的编辑窗口:
在这可以将几次的提交说明删了,只留一个
只留着这一条信息。 井号#开头的是注释,不用管。
3.再次git log查看一下提交历。。最上面那一条就是刚刚合并的。合并成功了。