Git合并多个提交并push到远程仓库

RockyGitgitrebase合并多个提交大约 3 分钟

先看看现在的本地仓库和远程仓库情况:上图为本地仓库,下图为远程仓库

Untitled
Untitled
Untitled
Untitled

现在的需求是,需要把C、D、E三个提交合并为一个提交

方法一:idea 交互界面完成

  1. 选中C,右键,点击“interactively rebase from here”
Untitled
Untitled
  1. 选中C、D、E(你想要合并的提交),然后点击Squash,点击后会让你输入新的提交信息,如图:
Untitled
Untitled
Untitled
Untitled
Untitled
Untitled
  1. 点击Start Rebasing。完成后可以在本地看到提交记录已经合并,如图:
Untitled
Untitled
  1. push到远程仓库,注意需要点击force push
Untitled
Untitled
  1. 操作完成,查看远程仓库的提交,如下图:
Untitled
Untitled

方法二:git命令完成

  1. 执行 git rebase -i 7d78433312cd651fe811c4c0bb02230203c91b28

-i 后面就是 C 前一个提交的版本号(C这个提交的版本号应该也行,没试过),执行后出现下图的界面,也就是vi编辑界面

# -i 后面就是 C 前一个提交的版本号,本文例子里就是B这个提交的版本号
git rebase -i dede351fabfaeb41520f59dddf44e632977f39a2
Untitled
Untitled
  1. 把 D 和 E 两个提交前面的 pick 更改为 squash,然后输入wq保存,进入编辑提交信息的界面,如下图:(至于squash的含义,在注释中有说明)
Untitled
Untitled
Untitled
Untitled
  1. 编辑新的提交信息,然后输入wq保存,比如:
Untitled
Untitled
  1. 保存后,本地的提交记录已经合并完成,如图:
Untitled
Untitled
  1. push到远程仓库,注意需要强推
git push --force
  1. 查看远程仓库提交
Untitled
Untitled

系统推荐









  • 随机毒鸡汤:只要你每天坚持学习,最终胜利肯定是属于,在考场上发挥好的人。