如何在不尝试更新其他模块的情况下对特定模块使用“go get”或“go mod vendor”?

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


但是,当我使用go get [url]or时go mod vendor,由于缺乏对我公司的一个存储库的权限,我得到一个 git fetch 错误。这个 repo 是 vendored,这就是我们如何绕过它进行 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.

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


四季花海
浏览 173回答 2
2回答

慕妹3242003

您可以在项目目录中获取特定版本的包使用go get <package>@<version>,例如:% go get github.com/golang/protobuf@v1.4.0&nbsp;go: downloading github.com/golang/protobuf v1.4.0仅将get github.com/golang/protobuf软件包所需的版本下载到本地缓存 ( $GOPATH/pkg/mod) 并将版本设置为go.mod文件。毕竟,如果您在本地缓存 ( $GOPATH/pkg/mod) 中有来自公司存储库的依赖项,请使用go mod vendor创建vendor(从缓存中获取)。

胡说叔叔

获取私有模块时会出现此类问题,请检查您本地系统中已完成的以下配置更新 git 全局配置 url&nbsp;git&nbsp;config&nbsp;--global&nbsp;--add&nbsp;url."git@github.com:".insteadOf&nbsp;"https://github.com/"更新 go env 以访问私有 go 模块go&nbsp;env&nbsp;-w&nbsp;GOPRIVATE=github.com/abc/*然后运行安装命令
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go