分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

将多次commit合并,只保留一次提交历史。

PS:在我练习的时候,将一个文件的代码做了多次修改,而且每次修改都给提交了,这几次改动的目的都一样,比如说修改RADEME.md,但是每次改动的只是一个小小的代码,但是提交历史上的显示看着会很乱,所以需要合并之前的多次提交历史。

1.首先使用git log查看一下提交历史【--oneline作用是将每个提交放在一行显示】

分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

这样在git中看到的是4次提交(更改txt),有点冗余,需要做的是将4次commit合并为一次

2. git 压缩  git rebase -i HEAD~5【这里也可以写为4,如果是4的话,下面修改参数的时候最上面那条也得修改】

该命令执行后,会弹出一个编辑窗口,5次提交的commit倒序排列,最上面的是最早的提交,最下面的是最近一次提交。

【未修改的编辑窗口我没截图,只截了修改了的图,图在下面】

修改第2-4行的第一个单词pick为squash(也可以改为简写"s"),当然看一下里面的注释就理解含义了。

然后保存退出,git会压缩提交历史,如果有冲突,需要修改,修改的时候要注意,保留最新的历史,不然我们的修改就丢弃了。

【最上面那条记录的不能动(因为后面的提交都是基于其上面提交来的)】

分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

修改以后要记得敲下面的命令:

git add .

git rebase --continue

如果你想放弃这次压缩的话,执行以下命令:

git rebase --abort

如果没有冲突,或者冲突已经解决,则会出现如下的编辑窗口:

分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

在这可以将几次的提交说明删了,只留一个分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

只留着这一条信息。 井号#开头的是注释,不用管。

3.再次git log查看一下提交历。。最上面那一条就是刚刚合并的。合并成功了。

分布式版本控制系统Git-----7.Git 使用git rebase合并多次commit

上一篇:Asp.Net缓存(1)


下一篇:mysql四-1:单表查询