我最近不得不将私有存储库从 SaaS Gitlab 迁移到本地版本。我做的一切都很顺利:将repo 中的旧 go 模块路径从更新a为old.com/workspace/anew.com/workspace/av1.2.3-new为最新的提交添加一个新标签更新 repob以引用v1.2.3-new来自的最新标签new.com/workspace/ago mod tidy在 repo 中运行b并验证它是否有效现在我需要引用new.com/workspace/a(originally old.com/workspace/a) 的旧版本标签。所以在 repo 中a,我检查了旧标签,将模块路径固定为new.com/workspace/afromold.com/workspace/a并将其标记为v1.1.1-new.在 repob然后我引用new.com/workspace/a了v1.1.1-new. 但是,这会导致:go: new.com/workspace/a@v1.1.1-new: parsing go.mod:
module declares its path as: old.com/workspace/b
but was required as: new.com/workspace/b如果我检查v1.1.1-newrepo 中的标签a,模块路径在文件中设置正确go.mod:module new.com/workspace/a我不清楚为什么它与v1.2.3-new最新提交的标签一起工作,但当我引用较旧的提交时却失败了。
1 回答
心有法竹
TA贡献1866条经验 获得超5个赞
所以我不能说我完全理解为什么这样做有效,但这里是使它起作用的步骤(包括没有起作用的步骤)。
我诉诸于清除缓存
go clean -modcache
测试了以下但它仍然失败。
go get new.com/workspace/a@v1.1.1-new
根据我在原始问题中的评论,这通过提交
v1.1.1-new
哈希起作用所以我再次求助于它。go get new.com/workspace/a@27ca81f7
现在它选择了那个提交的版本并且成功了。尽管在命令中使用了提交散列,但该
go.mod
文件也已使用标签/版本正确更新go get
。new.com/workspace/a v1.1.1-new
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消