如何将Git提交历史扁平化,合并为单一线性分支?
梳理Git分叉提交为线性历史
要把分叉的提交历史整理成你需要的线性结构,用交互式变基就能实现,步骤如下:
- 执行交互式变基命令,指定分叉前最后一个共同提交(
156f2a3)的父提交作为起点:
git rebase -i 156f2a3^
- 命令执行后会弹出文本编辑器,里面列出了
156f2a3之后的所有提交(按提交时间从旧到新排列)。调整这些提交的顺序,改成你期望的线性序列:
pick 4214f5c pick c8f17a6 pick 83bdd92 pick 00e04c9 pick 4a0498d pick 030baa6 pick d730427 pick e619d7c pick 202fd84 pick 422383b
注:编辑器里会显示提交描述,可结合哈希值确认对应提交,确保顺序和目标一致。
- 保存并退出编辑器,Git会按新顺序重新应用提交。如果遇到冲突,解决冲突后执行:
git add . git rebase --continue
重复该操作直到变基完成。
- 若该分支已推送到远程仓库,需强制推送覆盖旧历史(仅在独自使用分支或团队成员知情同意时操作):
git push -f
内容的提问来源于stack exchange,提问作者Herman
相关产品推荐
相关产品推荐

