背景
在浏览 Halo 仓库时,我注意到一个现象:无论一个 PR 中包含多少条提交记录,在最终合并后,仓库中通常只会保留一条合并提交记录。
实操
数据
PS D:\houxiongxiong\codes\GitHub\halo-theme\temp\theme-clarity> git log --oneline
abf463e (HEAD -> feat/pjax-rebase, feat/pjax-new) feat: 适配文本绘图插件
0667a38 (feat/pjax-next) feat(pjax): 增强元标签和结构化数据更新功能
814eefd fix(pjax): 修复移动端友链随机穿梭丢失问题
e1f4fc0 fix: 修复 PJAX 切换时侧边栏状态未重置的问题
34d3dcd feat(pjax): 适配 meta 标签
582489a docs(settings): 更新PJAX帮助文本,移除冗余说明
96d3807 docs(settings): 更新 PJAX 帮助文本以包含更多注意事项
cda82bc docs(pjax): 添加 PJAX 相关模块的代码注释
1c24339 feat(shop): 适配 pjax 模式
de74c89 fix(initActiveNavItem): 修正首页导航项在/page路径下的激活状态
2843ede feat: 在 pjax 加载时隐藏移动端侧边栏及相关元素
4caaf4f refactor(menu): 重构菜单交互
f06b4a1 feat: 添加链接提交初始化功能到组件重初始化流程
387b773 refactor(menu): 实现下拉菜单在PJAX中的状态保持
bd13813 feat: 初步实现 PJAX 功能
c7821ab Update theme.yaml需求
压缩从 bd13813 到 abf463e 之间的所有提交(共15个提交)。
示例
找到
bd13813的父提交bd13813的父提交是c7821ab,所以需要从那里开始变基:git rebase -i c7821ab编辑变基指令
编辑器打开后,会看到类似这样的内容(从上到下是从旧到新):pick bd13813 feat: 初步实现 PJAX 功能 pick 387b773 refactor(menu): 实现下拉菜单在PJAX中的状态保持 pick f06b4a1 feat: 添加链接提交初始化功能到组件重初始化流程 pick 4caaf4f refactor(menu): 重构菜单交互 pick 2843ede feat: 在 pjax 加载时隐藏移动端侧边栏及相关元素 pick de74c89 fix(initActiveNavItem): 修正首页导航项在/page路径下的激活状态 pick 1c24339 feat(shop): 适配 pjax 模式 pick cda82bc docs(pjax): 添加 PJAX 相关模块的代码注释 pick 96d3807 docs(settings): 更新 PJAX 帮助文本以包含更多注意事项 pick 582489a docs(settings): 更新PJAX帮助文本,移除冗余说明 pick 34d3dcd feat(pjax): 适配 meta 标签 pick e1f4fc0 fix: 修复 PJAX 切换时侧边栏状态未重置的问题 pick 814eefd fix(pjax): 修复移动端友链随机穿梭丢失问题 pick 0667a38 feat(pjax): 增强元标签和结构化数据更新功能 pick abf463e feat: 适配文本绘图插件修改指令
将第一个pick保留,后面的所有pick改为squash:pick bd13813 feat: 初步实现 PJAX 功能 squash 387b773 refactor(menu): 实现下拉菜单在PJAX中的状态保持 squash f06b4a1 feat: 添加链接提交初始化功能到组件重初始化流程 squash 4caaf4f refactor(menu): 重构菜单交互 squash 2843ede feat: 在 pjax 加载时隐藏移动端侧边栏及相关元素 squash de74c89 fix(initActiveNavItem): 修正首页导航项在/page路径下的激活状态 squash 1c24339 feat(shop): 适配 pjax 模式 squash cda82bc docs(pjax): 添加 PJAX 相关模块的代码注释 squash 96d3807 docs(settings): 更新 PJAX 帮助文本以包含更多注意事项 squash 582489a docs(settings): 更新PJAX帮助文本,移除冗余说明 squash 34d3dcd feat(pjax): 适配 meta 标签 squash e1f4fc0 fix: 修复 PJAX 切换时侧边栏状态未重置的问题 squash 814eefd fix(pjax): 修复移动端友链随机穿梭丢失问题 squash 0667a38 feat(pjax): 增强元标签和结构化数据更新功能 squash abf463e feat: 适配文本绘图插件保存并退出
保存文件后,Git 会开始压缩提交。编辑合并后的提交信息
Git 会打开编辑器让用户编写新的提交信息。默认会列出所有被压缩的提交信息,可以做以下操作:保留所有信息
删除部分信息
重新编写一个概括性的提交信息
例如:
feat: 完整实现 PJAX 功能 - 实现下拉菜单状态保持 - 适配 meta 标签和结构化数据 - 修复移动端相关问题 - 适配文本绘图插件完成变基
保存提交信息后,变基完成。