Go的Get命令兼容公司Gitlab仓库的HTTP协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go的Get命令兼容公司Gitlab仓库的HTTP协议相关的知识,希望对你有一定的参考价值。

 

    对于公司的私有Gitlab仓库,没有对https支持,在使用最新版本的go get命令时,需要使用-insecure参数来支持http,但如果导入的包里边依赖了需要https的仓库,就不好使了,折腾了一下,解决方案如下:

 

一、为Gitlab添加SSH Keys

1.生成 ssh keys

ssh-keygen -t rsa -C "[email protected]"

 

2.查看内容

cat ~/.ssh/id_rsa.pub

 

3.复制到剪贴板

Windows

clip < ~/.ssh/id_rsa.pub

Mac

pbcopy < ~/.ssh/id_rsa.pub

Linux (requires xclip)

xclip -sel clip < ~/.ssh/id_rsa.pub

 

4.粘贴到Gitlab个人中心的SSH Keys Settings

 

二、配置.gitconfig文件

Windows

notepad C:\Users\{你的Windows用户名}\.gitconfig

Linux/Mac

vi ~/.gitconfig

 

写入

[url "[email protected]:"]
    insteadOf = https://git.mygitlab.com

 

这里简化一下可以直接使用命令

git config --global url."[email protected]:".insteadOf "https://git.mygitlab.com"

 

 

三、验证

go get git.mygitlab.com/myname/xxx.git

然后到go的src目录就可以看到新增了git.mygitlab.com/myname/目录了,当然源码也在这个目录下

 

    考虑到https可是以后的趋势,所以还是推动一下公司尽快用上https的私有仓库吧。

以上是关于Go的Get命令兼容公司Gitlab仓库的HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章

gitlab 搭建go modules私有仓库

docker快速部署gitlab代码仓库

公司gitlab开发

在公司机器的GitLab中创建分支

为啥很多人选择用GitLab?

Gitlab 6.3.1默认仓库路径修改