英文:
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.mod
和go.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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论