什么是GitLab?
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。看到GitLab这个名字就让人想到GitHub,那它和GitHub的区别和联系是什么呢?GitLab和GitHub的区别和联系:
GitLab和GitHub都是在线的基于Git的代码托管服务。GitLab和GitHub像是两兄弟。然而GitHub有个小的缺陷,就是你的repository(仓库)都需要public,如果你想创建private的repository就得付钱,而GitLab正好解决了这个问题,可以在上面创建免费的私人仓库, 这也是我使用它的原因。
GitLab的Docker部署
第一步:拉取镜像:
第二步:启动Docker(所有的ip都换成自己的):
为了给外界暴露一个网址来访问网页,我们加了一句:--env GITLAB_OMNIBUS_CONFIG="external_url 'http://ip:8181'"。Docker启动完就可以通过网页访问了,地址是刚刚启动命令里设置的http://ip:8181。打开网页首先让你设置密码:登录的用户名默认是root:
登录成功后,新建项目:
填写信息:
提示要添加ssh key:
如果ssh文件夹不存在,则新建:
如果ssh文件夹不是新建的,看改文件夹下是否存在id_rsa(私钥文件)和id_rsa.pub(公钥文件):
如果文件夹为空,进到ssh文件夹:
生成公私钥文件(邮箱地址改成自己的):
然后三次回车(不设置口令)。生成密钥成功:
显示公钥:
复制显示的内容(完整的,包括头尾和中间的两个空格),粘贴到GitLab的ssh key的框里:然后ssh账户关联:
进入到要上传文件的文件夹里:
git初始化:
关联远程仓库:
如果已经关联过别的远程仓库:“fatal: remote origin already exists.”先rm掉:
然后再执行:
添加文件:
提交到本地(-m 后面写提交信息):
push到GitLab仓库:
遇到的一个Bug:使用ssh关联时怎么输密码都不对!后来发现不是密码的原因,而是当初暴露端口的时候没有把22端口暴露出来,因为22端口冲突了。没有暴露22端口导致了不能使用ssh关联,改成使用https协议就行了。就是把git remote add origin git@ip:xiangnili/ui-catalog.git改成:
然后在重新提交一遍,这样就OK啦。但是为什么非要暴露22端口才能使用ssh能?因为Linux的配置中SSH默认是22端口。我们可以打开sshd-config文件查看:
其实这个端口也是可以改的。
领取专属 10元无门槛券
私享最新 技术干货