【发布时间】:2021-10-30 04:13:23
【问题描述】:
所以我有一个我的main.go 导入的私人回购。我在进行构建时收到此错误:
找不到路径的模块
我需要为私人回购做任何特别的事情吗?我一直在谷歌搜索,找不到任何好的信息。它适用于 dep。
【问题讨论】:
所以我有一个我的main.go 导入的私人回购。我在进行构建时收到此错误:
找不到路径的模块
我需要为私人回购做任何特别的事情吗?我一直在谷歌搜索,找不到任何好的信息。它适用于 dep。
【问题讨论】:
这样做
git config --global --add url."git@your-repo.com:".insteadOf "https://your-repo.com/"
export GOPRIVATE='your-repo.com'
确保通过 ssh 进行的 git clone 工作正常。
【讨论】:
(答案来自this SO Question)
我在 Medium 上为此写了一个解决方案:Go Modules with Private Git Repositories。
我们处理它的方式与Alex Pliutau 的答案基本相同,并且该博客更详细地介绍了如何使用来自 GitHub/GitLab/BitBucket 的令牌设置 git config 的示例。它还介绍了使用带有私有存储库的模块的工作 Dockerfile 示例。
GitLab 的相关位:
git config --global \
url."https://oauth2:${personal_access_token}@privategitlab.com".insteadOf \
"https://privategitlab.com"
#or
git config --global \
url."https://${user}:${personal_access_token}@privategitlab.com".insteadOf \
"https://privategitlab.com"
希望对你有帮助。
【讨论】:
您应该使用 SSH 密钥来获取您的存储库,检查您的 SSH 密钥是否也在系统钥匙串中:
ssh-add -K ~/.ssh/id_rsa
【讨论】:
-K 标志。
鉴于这样一个私有仓库经常处于积极开发中,我个人只是将它克隆到我的$GOPATH 中的“正确”位置,并像使用任何其他项目一样使用源代码管理(例如 git)。在 Rodrigo 的回答中添加 SSH 密钥很棒,但是如果您无论如何都在积极开发私有存储库,那么将其克隆到正确目录的额外步骤绝对不是一个困难的步骤,而不是能够go get 它。
因此,例如,对于托管在 Github 上的私人回购,我会 cd 到 $GOHOME/src/github.com/git-username-for-repo 然后 git clone the-repo
【讨论】: