使用 git rebase -i 命令可以将指定版本之前的多次提交合并为一次。
1.先 git log 查看提交记录

2.执行 git rebase -i HEAD~2 或者 git rebase -i a91e660d
HEAD~2 是指当前版本的上 2 个版本
a91e660dd 为 9b45a0d4 前一次的提交记录

3.将 pick 改为 squash
之后会弹出现目的编辑窗口:
这是一个vim编辑的文本,需要使用vim命令进行编辑。
- 首先,输入i命令,进入编辑模式。
- 我们需要关注的是最上面几行以pick开头的信息。需要把除了第一行外的pick改成squash。
- 然后按esc键退出输入模式,输入:(英文冒号)进入底线命令模式
- 再输入wq 即保存后退出
修改第二行 pick 为 squash
pick:执行这个commit
squash:这个commit会合并到前一个commit

wq 保存后出现 commit message 界面

删除多余注释
重复vim命令进行编辑操作,最后输入wq保存后退出

4.再次 git log 查看提交记录
两次commit提交记录已经合并成为一次

5.最后执行 git push -f 强制推到远程上面
如果你想把本地分支的内容 强制推送覆盖远程分支,可以用 git push --force(常缩写 -f)。
基本用法
假设你当前在本地分支 feature/login,要强制推到远程同名分支:
git push origin feature/login --force
如果要强制推到远程的 main 分支:
git push origin feature/login:main --force
注意 ⚠️
-
强制推送会覆盖远程分支历史,其他协作者的提交可能会丢失。
-
如果你只是要覆盖 你自己本地对应的远程分支,可以用更安全的
--force-with-lease:git push origin feature/login --force-with-lease它会在远程分支没有别人新增提交的情况下才覆盖。
本文介绍如何使用git rebase-i命令将多次提交合并为一次。通过修改提交历史,将多个小的改动合并成一个完整的功能提交,简化提交历史,提高代码管理效率。
7975






