commit-rewriter 0.1:用网页界面批量改写 Git 提交信息
Simon Willison3 天前
简介
commit-rewriter 0.1 是一个用于改写 Git 提交信息的小型 Web 应用。它的一个典型用途是:在对外发布代码前,清理提交信息中的不必要内容,例如编码代理生成的冗余文字,或不适合公开的内部 issue ID。
使用方式
如果想编辑某个仓库的提交信息,可以运行:
uvx commit-rewriter path/to/repo
如果当前目录已经是目标仓库目录,也可以省略路径参数。
界面与功能
该工具提供一个 Web 界面,用于浏览和编辑仓库中的提交信息。界面中包含:
- 当前仓库路径、分支和提交哈希信息
- 待处理编辑数量
- 放弃草稿按钮
- 改写提交信息按钮
- 按提交信息、作者或哈希搜索
- 仅显示已编辑提交的筛选项
- 提交列表导航
- 每个提交对应的可编辑文本框
- 查看完整格式化 diff 的开关
改写机制
提交编辑完成后,工具会先基于当前仓库状态创建一个带时间戳的分支,以便在需要时回退。
随后,它会从第一个被编辑的提交开始,一直改写到最新提交。这意味着它并不是只修改单个提交,而是会重写从首个修改点到当前最新提交之间的提交历史。
适用场景
这个工具适合用于:
- 发布前整理提交历史
- 清理 AI 编程助手生成的提交信息噪声
- 删除不应公开的内部编号或上下文
- 让提交记录更适合开源项目或公开发布
需要注意的是,改写 Git 历史会改变提交哈希。对于已经共享给他人的分支,应谨慎使用。
