Mnemosyne:捕捉 Git 之外的每一次保存

项目Mnemosyne
语言Rust
Stars8
许可证Apache 2.0
GitHubalessandrobrunoh/Mnemosyne

痛点:Git 提交之间的空白

日常开发中,我们习惯性地依赖 Git 来管理代码版本。但 Git 的粒度是「提交」——每次 git commit 才创建一个检查点。问题在于:

  • 两次提交之间可能经过数小时,期间大量修改无法回溯
  • 实验性代码被覆盖后想找回,却不在任何提交里
  • IDE 的 Local History 功能好用,但换编辑器就失效

Mnemosyne 正是为填补这个空白而生。

核心功能

自动快照

Mnemosyne 以守护进程方式运行,监听文件系统变化。每次保存文件,它自动创建快照——无需手动提交,零干扰。

# 启动守护进程
mnemosyne daemon

# 监控指定目录
mnemosyne watch /path/to/project

高度去重存储

采用内容寻址存储(类似 Git 的对象模型),相同内容只存一份。即使频繁保存,磁盘占用也控制在合理范围。

全文搜索

# 搜索包含特定代码的历史版本
mnemosyne search "function calculateTotal"

# 按文件路径过滤
mnemosyne search "useState" --path "*.tsx"

即时恢复

# 查看文件历史
mnemosyne log src/components/Button.tsx

# 恢复到 10 分钟前的版本
mnemosyne restore src/components/Button.tsx --ago 10m

# 恢复到指定时间点
mnemosyne restore src/components/Button.tsx --at "2026-04-21 10:30:00"

与 Git 的关系

特性GitMnemosyne
粒度提交级别保存级别
触发方式手动自动
用途版本发布、协作本地开发保护
存储位置.git 目录~/.local/share/mnemosyne
保留策略永久可配置自动清理

两者不是竞争关系,而是互补。Mnemosyne 保护开发过程中的每一个瞬间,Git 管理有意义的版本节点。

技术亮点

  • Rust 编写:性能优秀,内存安全
  • TUI 界面:基于 ratatui 的终端交互界面
  • 守护进程架构:后台静默运行,不影响工作流程
  • 跨平台:支持 Linux、macOS、Windows

使用场景

场景Mnemosyne 如何解决
重构后测试失败想回退restore 秒级恢复
想对比 30 分钟前的实现diff 查看变更
找回被覆盖的实验代码search 全文检索
意外删除文件restore 完整恢复
回顾代码演进过程log 查看时间线

安装

# 从源码构建
git clone https://github.com/alessandrobrunoh/Mnemosyne.git
cd Mnemosyne
cargo build --release

# 二进制将位于 target/release/mnemosyne

个人评价

维度评分说明
创新性⭐⭐⭐⭐⭐精准定位 Git 的空白地带
实用性⭐⭐⭐⭐☆开发者日常高频需求
完成度⭐⭐⭐☆☆8 stars 新项目,功能初具规模
技术实现⭐⭐⭐⭐☆Rust + 守护进程架构合理

这是一个典型的「小而美」工具——不试图取代 Git,而是解决一个被忽视但真实存在的痛点。对于经常重构、实验新想法的开发者来说,相当于拥有了一个无限撤销的安全网。

相关资源

资源链接
仓库https://github.com/alessandrobrunoh/Mnemosyne
问题反馈https://github.com/alessandrobrunoh/Mnemosyne/issues
许可证Apache 2.0

Mnemosyne(摩涅莫辛涅)是希腊神话中的记忆女神,项目命名颇为贴切。