因为公司刚开展新项目,之前都是使用的svn,现在转成git进行版本控制,虽然自己之前很久开始使用git,但是对于git的https和ssh两种传输方式只是一知半解,也造就了今天发时间去搞清楚这个东西,时间搭了,搞清楚也是值得的,对以后自己工作的顺利开展还是有帮助的,所以也在此记录,可能主要记录过程,以参考别人文章为主,都是有用文章,避免以后查看费劲,长时间的资料过滤,不划算。
[toc]
一. 关于gitlab搭建
gitlab搭建是由同事搭建完成,所以并未参与,这里只附比较高质量的教程。
下面教程都是基于docker搭建的gitlab.
gitlab官方教程:GitLab Docker images
掘金:通过 docker 搭建自用的 gitlab 服务
❗注:教程中在做端口映射的时候,都将容器的22端口映射到宿主机的22端口,但是很可能这个docker容器是创建不成功的,为什么呢? 因为22端口是被占用的,我们登陆远程主机是通过22端口的,所以不会创建成功的。至于解决方案,参考一下文章:
Docker 部署 GitLab#2.修改ssh和nginx端口
但是这样又有一个比较恶心的问题,重启docker服务后,再登陆gitlab你会发现,ssh地址上出现:2222
加上端口访问的地址,看着很恶心。解决方案,参考下面文章(可以自己测试,我没测试,比较麻烦,原谅我比较懒):
Gogs与Linux共享SSH22端口
Docker运行Gitlab与Host共享22端口
📌总结:
- 关于使用docker搭建gitlab整体过程相对简单,可能坑就在端口号的处理上,特别是22端口;
- 如果不在docker中搭建gitlab的话,对于22端口来说,如果host开放了,就不需要格外配置了,gitlab使用默认配置即可。
二. ssh多账户配置解读
使用场景
❓why: 我们可能有自己的github,公司的gitlab等都需要ssh key, 当然我们都可以使用同意公钥来进行配置,但是,为了安全,我们对每个账户来分别配置公钥私钥。
ssh原理及必要说明
❗注:文章中有关于各个关于ssh的名词解释,仔细阅读。
ssh多账户配置说明及实践
知乎:ssh、git与多账户
掘金:https://juejin.im/post/5a8fe5d4f265da4e710f7042
多个 git 账号的 ssh 配置
❗注:知乎的那篇文章要重点度,写的很好,因为网上大部分关于git多账户的解释都是模糊的,或者说有问题的。
📌总结:
- 重点说下
~/.ssh/conf
文件,自己测试:
Host
: 我们任意起名,但不可重复,尽量和Hostname保持一致,方便git clone
等操作,不用修改地址,针对gitlab,github等,如果连接的是远程主机,可起简单点的名字,方便链接Hostname
: 真实的主机域名或者IP地址,要与Host区分开来User
: 登陆主机用户名, 像github,gitlab等服务提供商固定为git,默认为git- 参考
知乎
那篇文章,充分理解这几个字段的意思,很重要
- 配置git本地的用户名和email
# 取消全局 用户名/邮箱 配置
$ git config –global –unset user.name
$ git config –global –unset user.email
# 查看全局用户名/email
$ git config –global user.name
$ git config –global user.email
# 单独设置每个repo 用户名/邮箱
$ git config user.name 'xxxx'
$ git config user.email 'xxxx@xx.com'
ok, 在此记录,感觉各位作者带来的高质量文章,丰富了我的知识,再次感谢!