1问题:go mod拉取gitlab私有仓库代码时报错如下
1.1 go: git@gitlab.com:groupName/projectName.git: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /Users/demo/GoProject/pkg/mod/cache/vcs/178c20e0c315bbd8a83e48188c4a3c102ffb5d96cb2635b7cbddf3fb6a205bae: exit status 128:
fatal: could not read Username for 'https://git@gitlab.com:groupName/projectName.git': terminal prompts disabled
1.2 或者是报尾缀为 missing module line
1.3其他报错问题
2.原因:没配置好造成的后果
2.上述go mod 没配置好,以至于在拉取完一个新的私有项目后,无论是go build还是单独的go get某个包还是go get ./...(拉取所有的依赖版本)都无法成功下载依赖的golang包
3.方法:解决方法
1.首先需要更新go版本(1.13版本以上即可)
2.首先配置go module为打开模式(这个最无关紧要)
go env -w GO111MODULE=on
3.配置go module中的私有仓库地址
go env -w GOPRIVATE="个人gitlab地址",如下
go env -w GOPRIVATE="git@gitlab.com:groupName/projectName.git"
4.因为拉取gitlab私有代码会默认http格式下载,所以需要更改一下拉取方式
git config --global url."git@gitlab.com:groupName/projectName.git:".insteadOf "https://gitlab.com/groupName/projectName.git"`
5.Gitlab—>Settings—>Access Tokens,然后创建一个personal access token,这里权限最好选择只读(read_repository)。
注明:以上四部做完可以先测试一下,这一步不一定是必须的
git config --global http.extraheader "PRIVATE-TOKEN: YOUR_PRIVATE_TOKEN"