git子模块升级hermes agent需手动同步:一、用git submodule update --remote --merge拉取并提交最新main分支;二、检出指定语义化标签如v0.9.0并提交;三、用--force重置子模块至父仓库记录版本;四、递归更新嵌套子模块并校验关键依赖版本。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您使用 Git 子模块方式集成 Hermes Agent,当需要升级其版本时,子模块的引用不会自动同步远程更新,必须手动拉取并更新子模块指针。以下是完成该操作的具体步骤:
一、更新子模块远程跟踪并检出最新提交
此方法适用于子模块已配置为跟踪特定分支(如 main 或 release)的场景,通过拉取远程更新并重置子模块工作区,确保其指向该分支的最新提交。
1、进入主项目根目录,执行 git submodule update --remote --merge 同步所有子模块的远程分支最新提交。
2、若仅需更新 Hermes Agent 子模块,先运行 git submodule foreach -q 'git checkout main && git pull' 定位到子模块路径并拉取 main 分支变更。
3、执行 git add path/to/hermes-agent 确认子模块新 commit hash 已暂存。
4、提交本次子模块更新:git commit -m "submodule: update hermes-agent to latest main commit"
二、切换至指定语义化版本标签
此方法适用于需精确对齐 Hermes Agent 官方发布版本(如 v0.9.0)的生产环境,通过检出子模块内对应 tag 实现可重现的版本锁定。
1、进入子模块目录:cd path/to/hermes-agent
2、执行 git fetch --tags 拉取全部远程标签。
3、运行 git tag --sort=version:refname | grep '^v[0-9]\+\.[0-9]\+\.[0-9]\+$' | tail -n 3 查看最近三个稳定版本标签。
4、检出目标版本,例如:git checkout v0.9.0
5、返回主项目根目录,执行 git add path/to/hermes-agent 记录子模块新引用。
6、提交变更:git commit -m "submodule: pin hermes-agent to v0.9.0"
三、强制同步子模块内容与父仓库记录
此方法用于修复子模块本地状态偏离父仓库记录(即 git status 显示“New commits”或“Modified content”)的情形,强制将子模块工作区重置为父仓库所记录的 commit。
1、在主项目根目录执行 git submodule sync --recursive 同步 .gitmodules 中的 URL 配置。
2、运行 git submodule update --init --recursive --force 初始化缺失子模块并强制重置现有子模块工作区。
3、检查子模块状态:git submodule status 应显示以 - 开头的哈希值后无修饰符,表示已完全对齐。
4、若仍存在差异,手动进入子模块目录执行 git reset --hard 并返回主目录重新 add 提交。
四、处理子模块嵌套依赖冲突
此方法适用于 Hermes Agent 子模块自身又包含子模块(如依赖的 liteLLM 或 nous-tools),且父项目需统一管控多层嵌套版本的复杂场景。
1、在主项目根目录启用递归更新:git submodule update --init --recursive --remote
2、进入 Hermes Agent 子模块目录,检查其 .gitmodules 是否定义了嵌套子模块路径。
3、对嵌套子模块单独执行更新:git submodule update --init --recursive --depth=1
4、确认嵌套层级中关键依赖(如 liteLLM)版本不低于 v1.83.0,避免已知安全风险。
5、返回主项目根目录,执行 git add path/to/hermes-agent 提交顶层子模块引用变更。











