git - 控制 Go 包版本

标签 git go version-control go-modules

我正在寻找一种方法来控制 github 上的 go 包版本,类似于 package.json 文件中的“版本”键(对于 nodejs 包)。

在 package.json 中

{
  "version": "1.0.1"
}

我想将我的包导入另一个包,两者都使用 go 模块。在我的第二个包中,我的 go.mod 文件如下所示:

module myPackage

go 1.14

require(
  github.com/myAwesomePackage v0.0.0-20200531102207-93175fe4ed5f
)

现在我想对 myAwesomePackage 进行更改,所以我可以像这样重写 myPackage mod 文件:

module myPackage

go 1.14

require(
  github.com/myAwesomePackage v1.1.0
)

我试过git tag 1.1.0git tag v1.1.0在 myAwesomePackage 中,但是
myPackage 在尝试更新时出现以下错误:
invalid version: unknown revision v1.1.0

更新
git tag实际上有效,问题似乎来自我的 Ide (GoLand)。只是在 go.mod 文件中重写版本没有用,我不得不删除
require 语句中的整行,然后让 IntelliJ 再次同步
依赖关系。现在 myAwesomePackage 使用正确的版本导入。

最佳答案

目前尚不清楚您是在发布 Go 模块,还是依赖于一个模块。无论哪种方式,它都很简单;如果你是 publishing一,您可以使用 git tag 标记一个版本.如果您是 depending如果您想锁定特定版本,您可以简单地修改项目的 go.mod文件并选择一个版本。

关于git - 控制 Go 包版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62115016/

相关文章:

bash - Git checkout 失败,返回 "Illegal byte sequence"

go - 如何检查是否已设置 int 变量?

git - merge 两个存储库(原始项目和没有历史记录的更改项目)

git - 如何将本地机器的 SSH key 传递给 docker 容器?

python - 在没有外部库的情况下在 Python 中编写 git 命令脚本

git - 为什么过去应该创建 git commit 的可能情况是什么?

go - 为什么在 printfl 中使用 + 号?

go - 在方法或构造函数级别进行 Nil 处理?

jquery - 使用 Git 安装 jQuery

git - 如何嵌套 git 存储库;获取并 merge