问题描述
有时我们提交到GitHub等远程仓库上的commit太多,想将多次提交的commit合并成一个commit。
解决方法
可以利用rebase来压缩多次commit。
1. 首先查看本地提交历史
输入以下命令查看master分支的提交历史:
|
|
这里会显示master分支自创立以来的所有提交历史,现在假设要合并最近的4次提交。
2. 压缩最近4次提交
|
|
该命令执行后,会弹出默认编辑器的编辑窗口,4次提交的信息会倒序排列,最新的提交在最下面。
我们需要将其中第2~4行的第一个单词pick
修改为squash
这意味着将最后三次提交压缩到倒数第4次提交。随后保存。
3. 处理冲突
若有冲突,则会提示需要修改,修改后输入以下命令保存此次压缩:
|
|
如果想要放弃此次压缩,则输入:
|
|
4. 修改描述信息
若没有冲突处理,则会直接跳转到修改描述信息的位置,可以修改此次压缩后的commit描述。随后保存。
5. 提交到远程仓库
修改完描述信息后便已经完成了提交,若想要推送的远程仓库,则需要覆盖之前的提交,需要强制推送:
|
|