登录
首页 >  Golang >  Go问答

去获取引用无效标签

来源:stackoverflow

时间:2024-02-12 14:03:22 455浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《去获取引用无效标签》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我一直在开发一个基于 go 的二进制文件,并且遇到了一个奇怪的问题。

所以我确实有包a和包b,其中包b是在包a中直接引用的。

主应用程序(包 a)使用包 b 包 b 通过它的 mod 文件引用。

因此,我通过 go get [email protected] 添加了包 a 的包 b 的标记版本,但是当我遇到一些问题时,我在本地和远程(github)上删除了该版本和标记,并创建了一个基于标记的版本在较新的提交上。 github 确认新版本基于新引用,但是当我通过新提交引用相同标签时,它实际上引用了相同的旧代码版本。

最近,为了解决并解决这个问题,我创建了一个名为 v1.1.1 的标签,但是尽管它解决了问题,但现在即使当我引用 v1.1.0 时,它也会给我以下消息最后。

root@CaesarPrime-AcerE5:/mnt/d/AppA# go get github.com/xxxx/B@master
go: downloading github.com/xxxx/B v1.11.0
go: downloading github.com/xxxx/xxxxz v0.3.2
go: downloading github.com/xxxx/xxxxd v1.1.1
go: downloading golang.org/xxxx/xxxxv v0.0.0-20220127200216-cd36cc0744dd
go: downloading golang.org/xxxx/xxxxb v0.3.7
go: downloading github.com/xxxx/xxxx v0.0.0-20170810143723-de5bf2ad4578
go: upgraded github.com/xxxx/B v1.1.0 => v1.1.1

我相信这可能是由于某些缓存问题造成的,因为我在远程或本地都没有看到标签 v1.1.1。但是,如果 go git 从远程存储库中提取内容,因为它已经提取了一些已删除的后期标签,那么这种情况怎么会发生呢?

或者我在包管理中做了一些尴尬的错误?


正确答案


你是对的,被删除的标签可能存在于 go 的公共代理

go 文档说:

标签一旦创建,就不应删除或更改为 不同的修订版。版本经过验证以确保安全, 可重复的构建。如果标签被修改,客户端可能会看到安全 下载时出错。即使标签被删除后,其内容 可能在模块代理上仍然可用。

您可以通过放置这样的节来收回版本在 go.mod 中:

retract (
    v1.0.0 // Published accidentally.
    v1.0.1 // Contains retractions only.
)

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《去获取引用无效标签》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>