git教程-git rebase 合并多条commit记录变为一条

应用场景

场景1

完成需求时,可能会 多次提交代码,每次提交都有一个记录,如下:

当提交到远程仓库时,只想保留一个或几个commit,这时候就需要合并commit了。

场景2

要进行 分支合并 的时候(从一个分支合并到另一个分支),只想保留一个或某几个commit,这时候就需要合并commit了。

场景3

与企业管理方式有关,有的公司,一个需求只允许提交一次到远程仓库

操作

前提

提交到本地库,没有提交到远程库

方式一

第一步

要把前七个commit合并成一个,即:

git rebase -i HEAD~7

解释:HEAD~7 表示前7个commit合并成一个

第二步:摘取合并

然后列出合并的所有commit
注意:列出的顺序是从老到新的

解释:

  • Pick:会在你的历史记录中保留该提交。
  • Reword:允许你修改提交信息,可能是修复一个错别字或添加其它注释。
  • Edit:允许你在重放分支的过程中对提交进行修改。
  • Squash:可以将多个提交合并为一个。

更改 pick,把这七个合并成一个commit,那么更改如下:

注意:第一个是 pick,不要修改

执行 esc -> wq 保存退出

然后,让我们更改commit信息,编辑完后退出就好了。

最后完成的效果如下:

方式二

只有第一步与上面方式不同,其余完全相同

第一步

要把前七个commit合并成一个,即:

git rebase -i 6394dc

解释:6394dc 是第7个版本号的前一个

感谢:
https://zhuanlan.zhihu.com/p/139321091
https://linux.cn/article-12231-1.html


原文出处:/show_1IX5kMcTE0r2.html