据此 issue,gitlab 7.8 就开始支持 go get private repo。
假设 gitlab 服务是: mygitlab.com
使用方式:
$ go get -v mygitlab.com/user/repo
如果 mygitlab.com 不支持 https, 还得加上 -insecure
参数
$ go get -v -insecure mygitlab.com/user/repo
但是 -insecure
参数是 go 1.5
以后才有的,所以如果低于 1.5
版本,赶紧升级一下吧。
默认需要输入用户名和密码,比较繁琐。
由于 go get 底层实际还是用了 git 去操作。可以配置 .gitconfig 使之用 http => ssh 的访问方式(个人感觉就是重写了 url)
$ git config --global url."git@mygitlab.com:".insteadOf "http://mygitlab.com/"
// 其实就是在 `.gitconfig 增加了配置`
$ cat ~/.gitconfig
[url "git@mygitlab.com:"]
insteadOf = http://mygitlab.com/
注意: git@mygitlab.com: 后面有个冒号 :
, 且 http://mygitlab.com 后面有 /
另外: url.”aaa”.insteadOf “bbb” 是个相当有用的技巧,对 github 同样适用。
$ git config --global url."git@github.com:".insteadOf "https://github.com/"
$ cat ~/.gitconfig
[url "git@github.com:"]
insteadOf = https://github.com/
这样 git clone https://github.com/golang/go.git 就变成 git clone git@github.com:golang/go.git , 免去输入账号密码的烦恼。
总结:
- gitlab >= 7.8
- go >= 1.5 (如果 gitlab 不支持 https)
- git url insteadOf
参考: