生成待折叠的提交
与自动折叠的修正提交类似,但会保留信息:生成一条带特殊前缀的提交,交互式变基时自动折叠到目标提交上,并打开编辑器让你合并两条提交信息。它适合为某个提交补充说明的补丁。
基本信息
| 用途 | 为某个提交补充说明的补丁提交 |
|---|---|
| 用法 | 指定目标提交生成带特殊前缀的提交 |
| 折叠效果 | 自动重排到目标提交之后并进入编辑器整理信息 |
| 与修正提交的区别 | 折叠时会打开编辑器让你合并两条信息 |
| 配套开关 | 交互式变基时启用自动折叠 |
典型使用场景
- 补充说明某个改动的背景与原因
- 给评审意见留下可追溯的回应
- 把「后来又发现的细节」并入原提交
- 整理历史时保留中间的思考过程
- 需要合并两条提交信息而不是直接丢弃一条
常用示例
常用示例
git commit --squash a1b2c3 # 生成带特殊前缀的待折叠提交
git rebase -i --autosquash origin/main # 自动折叠并打开编辑器
# 在编辑器里整理两条提交信息,保留有价值的说明
git log --oneline -5 # 核对折叠后的历史
git rebase --abort # 折叠结果不满意时退回两种折叠方式
| 方式 | 提交信息处理 | 适用情况 |
|---|---|---|
| 修正方式 | 丢弃补丁提交的信息 | 只是想并入改动 |
| 补充说明方式 | 打开编辑器合并两条信息 | 需要保留补充说明 |
| 手动压缩 | 完全由自己整理信息 | 对信息要求很高的场景 |
需要保留补充内容的说明时用它;只是想并入改动而不在意描述时,用丢弃信息的修正方式更省事。
折叠时会打开编辑器,无人值守的脚本里要提前设置好编辑器环境,否则流程会一直等待输入。
两条信息合并后可能变长,整理时保留对后来者有价值的部分即可。
目标提交必须是当前分支上可达的提交,写错目标会导致折叠失败。