如何对特定模块使用“go get”或“go modvendor”,而不尝试更新其他模块?

ozm*_*zma 10 go govendor go-modules go-get

我正在尝试从 github 获取项目的特定包。

但是,当我使用go get [url]or时go mod vendor,由于缺乏对我公司的存储库之一的权限,我收到 git fetch 错误。这个存储库是供应的,这就是我们如何绕过它进行 go test、go build 等。

这是错误消息:

go: private.work.repo.com/project/repo@v0.0.0-20190703160253-9c6eb80851f1: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in C:\Users\NICHOLAS.TAN\go\pkg\mod\cache\vcs\37594aeb10b98234e04b4780cf59f32c4ad7bb9da460f552103ae748cea73aa1: exit status 128:
        fatal: remote error: Repository not found
        The requested repository does not exist, or you do not have permission to
        access it.
Run Code Online (Sandbox Code Playgroud)

有没有办法让我使用go get和/或go mod vendor不使用这些命令来尝试查看其他模块依赖项?

koz*_*zmo 5

您可以在项目目录中获取特定版本的包使用go get <package>@<version>,例如:

% go get github.com/golang/protobuf@v1.4.0 

go: downloading github.com/golang/protobuf v1.4.0
Run Code Online (Sandbox Code Playgroud)

仅将get github.com/golang/protobuf包所需的版本下载到本地缓存($GOPATH/pkg/mod)并将版本设置为go.mod文件。

毕竟,如果您在本地缓存 ( $GOPATH/pkg/mod) 中具有来自公司存储库的依赖项,请使用go mod vendor创建vendor(从缓存中获取)。