为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
四季花海 2022-06-21 09:48:15
我正在尝试从 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不使用这些命令来尝试查看其他模块依赖项?
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您可以在项目目录中获取特定版本的包使用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(从缓存中获取)。


查看完整回答
反对 回复 2022-06-21
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

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

更新 git 全局配置 url

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

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

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

然后运行安装命令


查看完整回答
反对 回复 2022-06-21
  • 2 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信