Hermes Desktop 源码更新指南:从 Fork 同步上游最新代码
2026/7/1大约 2 分钟
Hermes Desktop 源码更新指南:从 Fork 同步上游最新代码
Hermes Desktop 的自动更新面向 GitHub release tag,不会因为上游 main 有新 commit 就自动更新。当 fork 需要提前测试上游代码时,可以在源码安装目录中手动同步。
先确认是否需要更新
cd ~/.hermes/hermes-agent
git log --oneline -1
git describe --tags --always
git remote -v分别查看最新 release 和上游 main。如果 release 没变化而 main 已经前进,说明自动更新逻辑没有问题,只是你想提前使用开发分支代码。
正确流程
1. 备份配置并检查工作区
cp ~/.hermes/config.yaml ~/.hermes/config.yaml.bak.$(date +%Y%m%d_%H%M%S)
git status --short先处理本地改动。构建产物不应被手动修改或提交;真正有价值的改动应先提交到自己的分支。
2. 获取 upstream
git fetch upstream mainorigin 通常指向自己的 fork,upstream 才是官方仓库。直接 git pull origin main 可能只会得到 fork 中的旧代码。
3. 合并或变基
没有额外 commit 时:
git merge upstream/main --ff-only如果 fork 自己多了 commit,使用:
git rebase upstream/main冲突解决后执行 git add 和 git rebase --continue。
4. 更新虚拟环境并验证
./venv/bin/pip3 install -e .
./venv/bin/python3 -m hermes_cli.main --version
./venv/bin/python3 -m hermes_cli.main doctordoctor 通过后重启 Hermes Desktop;运行中的桌面进程不会自动加载刚安装的源码。
关键结论
- release tag 没更新时,桌面端不更新是预期行为。
fetch upstream+merge/rebase是同步 fork 的核心流程。- 配置、skills 和 sessions 位于用户目录,源码更新不会主动删除它们,但仍应先备份。
- 源码版本可能仍显示旧 release 号,额外 commit 会体现在
git describe中。 - 生产使用前应固定 commit,并保留回滚点;
git reflog可以找回变基前的位置。
