我正试图从github获得一个项目的特定包。
然而,当我使用go get [url]
或go mod vendor
时,我会收到一个git fetch错误,因为我的公司的一个repo没有权限。这个回购是出售的,这就是我们如何绕过它进行测试、构建等。
这是错误消息:
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:UsersNICHOLAS.TANgopkgmodcachevcs37594aeb10b98234e04b4780cf59f32c4ad7bb9da460f552103ae748cea73aa1: 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
,而不需要这些命令来查看其他模块依赖关系?
您可以在项目目录中使用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
(中有来自公司repo的依赖项,请使用go mod vendor
创建vendor
(从缓存中获取依赖项(。
获取专用模块时会出现此类问题,请检查本地系统中已完成的以下配置
更新git全局配置url
git config --global --add url."git@github.com:".insteadOf "https://github.com/"
更新go env以访问私有go模块
go env -w GOPRIVATE=github.com/abc/*
然后运行安装命令