"挑一个 commit,捅它一刀。"这就是 Git-knife 名字的由来。

这个用 Tauri 构建的桌面应用把 Git 提交历史展示成一张表格,你可以直接双击单元格编辑 commit message、作者、日期。支持正则查找替换,批量修改。底层调用的是系统自带的 git CLI,使用 git commit-tree 复用原始 tree 对象,所以文件内容"可证明地从未改变"。

作者 YonathanTesfaye 在 README 中放了一张截图,但正是这张截图在 HN 上引发了第一波讨论——有人觉得它看起来像对着屏幕拍的照片,而不是系统截图。后来的元数据证明它确实是 gnome-screenshot 截的,只是透明窗口效果让截图看起来像是在拍照。
Simon Willison 在评论区列出了几个正当的使用场景:抓取类项目需要让 commit 日期匹配数据的实际变更时间、拆分仓库时保留历史、批量修正拼写错误的作者名等。这些都是 Git 本身的 rebase 和 filter-branch 能做的事,但 Git-knife 把它们变成了可视化的表格操作。
另一个有趣的讨论来自 README 中的 LLM 生成声明。项目的 README 包含一段 AI 写的免责声明,解释说它不重新实现 Git。这引发了关于 AI 生成代码注释的讨论——有人觉得这是"污染",有人则认为这对未来 AI agent 阅读代码时有用。
Git-knife 的危险性是显而易见的——改写历史是 Git 中最容易搞砸的操作之一。但也正是因为它把危险操作变得简单,才让这个工具引人注目。
参考来源: