我们提交供应商文件夹的更改吗?

huangapple go评论79阅读模式
英文:

Do we commit vendor folder changes?

问题

我想了解一下Go项目中的vendor文件夹。

我克隆了一个Go仓库并进行了代码更改。
但是当我尝试运行相关的测试时,出现了一些错误信息。在进行了一些谷歌搜索后,我发现需要运行一些命令:

  • go mod tidy

  • go mod vendor

现在问题已经解决了,但是我发现vendor文件夹中有大量文件发生了变化。

这样做是否可行?

我需要提交所有这些文件吗?

英文:

I want to know about vendor folder in a Go project.

I cloned a go repo and made my code changes.
But when I try to run the related test I got some error messages. On some google search, I found that I need to run some commands:

  • go mod tidy

  • go mod vendor

Now issues are gone, but I see a large number of files in vendor folder have changed.

Is it acceptable?

Do I need to commit all these file?

答案1

得分: -1

vendor文件夹包含项目的所有依赖项,因此通常不会提交到代码库中。

但是,您应该提交go.modgo.sum文件,如果您依赖的库没有任何可疑的地方(删除版本、源代码等),则vendor文件夹应该可以从go.sum文件完全还原。

使用Go模块,vendor文件夹很少使用。大多数人在本地也不使用它。运行go mod download而不是go mod vendor会将模块下载到系统上的模块目录中(默认为$GOPATH/pkg)。

您可以在Go模块文档中了解有关使用供应商的更多信息。 或者查看整个Go模块文档https://go.dev/ref/mod。

英文:

vendor folder contains all dependencies of the project so it usually is not committed to the repository.

You should however commit go.mod and go.sum files, if there is nothing sketchy with libs you depend on (removing version, sources etc), vendor folder should be fully reproducible from the go.sum file.

With Go modules vendor folder is rarely used tho. Most people do not use it locally either. Running go mod download instead of go mod vendor would download modules to a modules directory on your system (by default $GOPATH/pkg).

You can read more about vendoring with Go modules in docs. Or checkout the whole Go modules documentation https://go.dev/ref/mod.

huangapple
  • 本文由 发表于 2023年4月7日 12:17:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/75955434.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定