代码托管服务——GitLab

什么是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文件查看:

其实这个端口也是可以改的。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180124G017WQ00?refer=cp_1026

扫码关注云+社区