5

我正在尝试从 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不使用这些命令来尝试查看其他模块依赖项?

4

2 回答 2

4

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

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

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(从缓存中获取)。

于 2020-07-23T05:58:03.510 回答
0

获取私有模块时会出现此类问题,请检查您本地系统中已完成的以下配置

更新 git 全局配置 url

 git config --global --add url."git@github.com:".insteadOf "https://github.com/"  

更新 go env 以访问私有 go 模块

go env -w GOPRIVATE=github.com/abc/*

然后运行安装命令

于 2021-11-08T10:54:35.793 回答