git rebase -i HEAD~n

只有自己一个人开发的分支,提交记录有多次,想要合并多次提交记录

1. 交互式变基

git rebase -i HEAD~N

N = 你想合并的提交数

2. 在编辑器中设置 squash

执行完第一步后,会弹窗让你修改

弹窗修改前:

pick p3q4r5s Implement core logic

pick m0n1o2p Refactor utils

pick i7j8k9l Add logging

pick e4f5g6h Update config

pick a1b2c3d Fix typo

弹窗修改后:

pick p3q4r5s Implement core logic

squash m0n1o2p Refactor utils

squash i7j8k9l Add logging

squash e4f5g6h Update config

squash a1b2c3d Fix typo

第一个用 pick,后面的都用 squash(或简写 s)。修改完毕后保存退出

3. 编辑最终提交信息

保存后,Git 会打开新窗口,让你写合并后的提交信息。

你可以:

删除不需要的行(以前的提交注释)

写一个简洁清晰的新信息作为合并后的提交注释

保存退出

比如修改前,有49个提交记录的注释

修改后:删除了之前所有的提交注释,重新提交一个注释"24247-4 鸿蒙内网升级需求提交" 然后保存退出

4.强制推送

本地历史已改写,必须强制同步到远程:

git push --force-with-lease

相关推荐
JackieDYH2 小时前
Git 与 GitHub 新电脑配置指南(从零开始)
git·github·工具·使用教程
Jeanyia12 小时前
GitLab 配套 Git 常用命令
git·gitlab
10mAh16 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
Lydro17 小时前
CentOS 7 安装高版本git
git·centos 7
guwentian1 天前
Git Worktree 实战:用并行多 Agent 把开发提速 N 倍
大数据·git·elasticsearch·wroktree
不吃鱼的羊1 天前
Git识别未修改的文件有修改
git
蓝黑墨水1 天前
一个git问题的处理
git
互联网中的一颗神经元1 天前
21 — 额外命令:同时开两个窗口、自动检查哨
git
_道隐_2 天前
git stash save 和 git stash push有什么区别?
git
_道隐_2 天前
git stash如何pop指定的stash change?
git