You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Poetry无法更新私有Git仓库中带Tag的SSH依赖?

问题解决:Poetry更新Git标签依赖的私有库

核心原因

Poetry 对 Git 依赖的 rev 字段(如固定标签、commit 哈希)会视为固定版本,默认不会主动检查仓库中的新标签或更新,只有当依赖指向分支时,poetry update 才会拉取分支的最新提交。


解决方案

1. 使用语义化版本范围匹配标签(推荐)

修改 app 项目的 pyproject.toml,将依赖配置改为结合 version 字段的形式,让 Poetry 自动识别仓库中符合版本范围的最新标签:

lib = {git = "git@github.com:org/lib.git", version = "^0.2.0"}
  • 这里的 ^0.2.0 表示允许更新到 0.x.x 系列的最新版本(如 0.2.1、0.3.0,规则遵循语义化版本规范)。
  • Poetry 会自动扫描该 Git 仓库的所有标签(支持带 v 前缀的标签,如 v0.2.1),匹配符合范围的最新版本。
  • 修改后执行 poetry update lib 即可自动更新到最新的兼容版本。

2. 绑定固定分支配合标签发布

如果更倾向于通过分支追踪稳定版本,可以在 lib 仓库维护一个 stable 分支,每次发布新标签时将分支指向该标签的提交:

# 在 lib 仓库执行
git checkout v0.2.1
git branch -f stable
git push origin stable --force

然后修改 app 的依赖配置为:

lib = {git = "git@github.com:org/lib.git", branch = "stable"}

之后执行 poetry update lib 就会拉取 stable 分支的最新代码(即对应最新标签的版本)。

3. 手动修改依赖配置后更新

如果只想临时更新到指定新标签,不想调整依赖规则,可以直接修改 app 的 pyproject.toml 中的 rev 字段:

lib = {git = "git@github.com:org/lib.git", rev = "v0.2.1"}

然后执行以下命令更新锁定文件:

poetry lock --no-update
# 或者直接执行
poetry update lib

内容的提问来源于stack exchange,提问作者Robino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 20:20:24