主要观点:作者在 Mozilla 用补丁栈工作,常用git rebase -i
,但mozilla-central
大仓库下该命令有诸多缺点,如慢、触发重建、状态性强、笨拙等,于是开发了git-revise
。
关键信息:
git-revise
是针对补丁栈工作流的历史编辑工具,快速、无损,提供方便命令和工具。- 测试显示
git-revise
比git rebase -i
快 15 倍,通过内存重基算法避免磁盘 I/O。 - 有
fixup fast
(直接应用索引变更)、split commits
(拆分提交)、interactive mode
(交互式模式)、bulk commit rewording
(批量重写提交消息)、autosquash support
(自动合并修复提交)等功能。 - 它不是
git rebase -i
的完全替代品,有工作目录不修改、不处理文件重命名复制、不支持复杂历史重写等限制。
重要细节: - 作者用
git cinnabar
配合git
,mozilla-central
有 280268 个文件。 - 作者样本量小(仅 1 个测试),系统为 Fedora 30 及 X1 Carbon (Gen 6)。
-a
(或--all
)标志会影响索引(因文件被暂存)。- 可通过
pip
安装git-revise
,查看 GitHub 仓库、Bug 追踪、Manpage 等资源了解和贡献。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。