1

设置:

  • 我们的项目正在使用golang 1.12.14
  • 我们正在使用go build -mod=vendor

问题:当新的依赖项添加到go.mod供应商文件夹时,没有更新,人们正在提交代码并忘记运行go mod vendor以更新文件夹。我的理解是,由于-mod=vendor指定使用vendor文件夹中的包,因此该go.mod文件与我们在构建项目时实际使用的文件存在差异。

问题:应该go mod vendor添加到预提交挂钩吗?

4

1 回答 1

2

从 Go 1.14 开始,只要使用目录,该go命令就会自动检查vendor目录和go.mod文件之间的一致性vendor。此外,vendor如果模块指定go 1.14或更高,它默认使用目录(参见https://tip.golang.org/doc/go1.14#go-command)。

截至今天,Go 工具链受支持的最旧版本是 Go 1.15.13。

因此,如果您升级到受支持的 Go 工具链版本,则不需要go mod vendor作为预提交挂钩运行。每当使用目录时,go命令本身都会标记不一致。vendor

于 2021-06-25T18:01:08.913 回答