什么是 GitLab

GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

部署 GitLab

我们使用Docker来安装和运行GitLab中文版,docker-compose.yml配置如下;
docker仓库地址:https://registry.hub.docker.com/r/twang2218/gitlab-ce-zh

  1. version: '3'
  2. services:
  3. web:
  4. image: 'twang2218/gitlab-ce-zh'
  5. container_name: gitlab
  6. restart: always
  7. hostname: '192.168.141.200'
  8. environment:
  9. TZ: 'Asia/Shanghai'
  10. GITLAB_OMNIBUS_CONFIG: |
  11. external_url 'http://192.168.141.200'
  12. gitlab_rails['gitlab_shell_ssh_port'] = 2222
  13. unicorn['port'] = 8888
  14. nginx['listen_port'] = 80
  15. ports:
  16. - '80:80'
  17. - '443:443'
  18. - '2222:22'
  19. volumes:
  20. - ./config:/etc/gitlab
  21. - ./data:/var/opt/gitlab
  22. - ./logs:/var/log/gitlab

登录测试

访问并设置 root (超级管理员)密码:
我设置的 root 密码是:12345678
密码需要至少八位
BrettWu账号密码是:1q2w3e4r
image.png
登录后再设置其他账号
在设置中将 Gravatar enabled 复选框不勾上,因为勾上gitlab会上外网的一个全球公认头像网站(cn.gravaotar.cm)找头像,可能会导致卡顿情况。
image.png

账号管理

使用时请不要直接通过root用户操作,需要先创建用户,然后通过创建的用户操作,如果你是管理员还需要为其他开发人员分配账户

  • 创建账户,点击管理区域->新建用户

image.png

  • 设置账户信息,同时你可以将自己设置为管理员

image.png

创建项目

image.pngimage.png
然后就可以对项目进行拉去和提交了
image.png

使用 SSH 方式拉取和推送

主要用于免密提交和拉取,这样比使用账号和密码要安全些,也用于持续交付功能

生成 SSH KEY

  • 使用 ssh-keygen 工具生成,位置在 Git 安装目录下,我的是 C:\Program Files\Git\usr\bin

输入命令:
ssh-keygen -t rsa -C "your_email@example.com"

  • 执行成功后的效果: ```bash Microsoft Windows [版本 10.0.14393] (c) 2016 Microsoft Corporation。保留所有权利。

C:\Program Files\Git\usr\bin>ssh-keygen -t rsa -C “topsale@vip.qq.com” Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Lusifer/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/Lusifer/.ssh/id_rsa. Your public key has been saved in /c/Users/Lusifer/.ssh/id_rsa.pub. The key fingerprint is: SHA256:cVesJKa5VnQNihQOTotXUAIyphsqjb7Z9lqOji2704E topsale@vip.qq.com The key’s randomart image is: +—-[RSA 2048]——+ | + ..=o=. .+. | | o o + B .+.o.o | |o . + +=o+.. | |.= . oo… | |= o So | |oE . o | | .. .. . | | oo+ | | B*oo | +——[SHA256]——-+

C:\Program Files\Git\usr\bin>

  1. <a name="eamaD"></a>
  2. ### 复制 SSH-KEY 信息到 GitLab
  3. - 密钥位置在:C:\Users\你的用户名\.ssh 目录下,找到 id_rsa.pub 并使用编辑器打开,如:
  4. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295644840-dbe2d087-f603-4582-8df9-bf96f1141b63.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u404ba4ff&margin=%5Bobject%20Object%5D&name=image.png&originHeight=273&originWidth=975&originalType=url&ratio=1&rotation=0&showTitle=false&size=252179&status=done&style=none&taskId=u31e6b79c-af81-4f8e-a559-5da5f3afcef&title=)
  5. - 登录 GitLab,点击“用户头像”-->“设置”-->“SSH 密钥”
  6. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295664554-06dc11d9-94c4-4cd2-8e70-a03ce4637951.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u050f1323&margin=%5Bobject%20Object%5D&name=image.png&originHeight=653&originWidth=1486&originalType=url&ratio=1&rotation=0&showTitle=false&size=121695&status=done&style=none&taskId=u8617d922-4ba0-4118-a5ad-d525be62d32&title=)
  7. - 成功增加密钥后的效果
  8. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295685828-e0384951-a58d-4fb3-88a9-617febe560aa.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u4f11e699&margin=%5Bobject%20Object%5D&name=image.png&originHeight=649&originWidth=1167&originalType=url&ratio=1&rotation=0&showTitle=false&size=99001&status=done&style=none&taskId=u6dd3a5b1-0582-44ca-b208-3bc1db0cc4b&title=)
  9. <a name="JWEKm"></a>
  10. ### 使用 TortoiseGit
  11. <a name="R3rdD"></a>
  12. #### 克隆项目
  13. - 新建一个存放代码仓库的本地文件夹
  14. - 在文件夹空白处按右键
  15. - 选择 **Git 克隆...**
  16. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295736378-7757d655-8d79-48ef-aa6d-446224fff99d.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u0945bb39&margin=%5Bobject%20Object%5D&name=image.png&originHeight=413&originWidth=253&originalType=url&ratio=1&rotation=0&showTitle=false&size=53549&status=done&style=none&taskId=u4230c49d-0c1c-4c1e-aee4-ae3d1e2cf6d&title=)
  17. - 复制项目地址到 URL
  18. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295762635-92a74de7-fdcd-460f-9f6c-ca04cc0250cc.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u853cf597&margin=%5Bobject%20Object%5D&name=image.png&originHeight=386&originWidth=632&originalType=url&ratio=1&rotation=0&showTitle=false&size=114201&status=done&style=none&taskId=ud7f733b8-fc2a-48d8-bb2b-b165ab05984&title=)
  19. - 拉取时报错
  20. No supported authentication methods available (server sent: publickey)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651296692198-f22431a9-da7d-43b8-b055-5a373257550f.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=393&id=ub73fc0aa&margin=%5Bobject%20Object%5D&name=image.png&originHeight=393&originWidth=595&originalType=binary&ratio=1&rotation=0&showTitle=false&size=42704&status=done&style=none&taskId=u559e0933-f426-4f95-a076-df3fdfe5554&title=&width=595)<br />这是用tortoise git检出项目时报的错,解决方案:<br />tortoise git设置—network—ssh<br />默认为 C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe<br />修改为git中的 C:\Program Files\Git\usr\bin\ssh.exe<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651297757579-66d613a4-d5cb-4743-8479-911c941191ad.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=575&id=u5991c664&margin=%5Bobject%20Object%5D&name=image.png&originHeight=618&originWidth=787&originalType=url&ratio=1&rotation=0&showTitle=false&size=99528&status=done&style=none&taskId=ufbf90ef8-b745-4661-9577-7d943d573f4&title=&width=732)
  21. - 如果弹出连接信息请选择是
  22. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295782002-cf851e06-0b4c-4d59-852c-1a6e1695b15b.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=u77871b3e&margin=%5Bobject%20Object%5D&name=image.png&originHeight=232&originWidth=476&originalType=url&ratio=1&rotation=0&showTitle=false&size=81439&status=done&style=none&taskId=udd92cdc3-f8b6-4fc8-9306-65b9b4b8da9&title=)
  23. - 成功克隆项目到本地
  24. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/1750374/1651295794877-492c4f91-a8c3-451f-a040-8db5a945840c.png#clientId=u4ea680d7-9a2a-4&crop=0&crop=0&crop=1&crop=1&from=paste&id=ue59e0ed2&margin=%5Bobject%20Object%5D&name=image.png&originHeight=418&originWidth=583&originalType=url&ratio=1&rotation=0&showTitle=false&size=165688&status=done&style=none&taskId=u4ef6e5c5-187a-4c17-8ccf-35786a52983&title=)
  25. <a name="q4yU5"></a>
  26. ### 推送项目
  27. - 创建或修改文件(这里的文件为所有文件,包括:代码、图片等)
  28. - 我们以创建 .gitignore 过滤配置文件为例,该文件的主要作用为过滤不需要上传的文件,比如:IDE 生成的工程文件、编译后的 class 文件等
  29. - 在工程目录下,新建 .gitignore 文件,并填入如下配置

target/ !.mvn/wrapper/maven-wrapper.jar

STS

.apt_generated .classpath .factorypath .project .settings .springBeans

IntelliJ IDEA

.idea .iws .iml *.ipr

JRebel

rebel.xml

MAC

.DS_Store

Other

logs/ temp/ ```

  • 右键呼出菜单,选择 提交 Master…

image.png

  • 点击 全部 并填入 日志信息

image.png

  • 点击 提交并推送

image.png

  • 成功后的效果图

image.png

查看 GitLab 确认提交成功

image.png

其他gitlab安装

本文只讲述如何使用docker安装gitlab,包括中文和英文两种版本,大家自行进行选择进行安装。


安装环境:
1、有docker的centos7
2、gitlab所需官方最低配置:2核,4G
3、虚拟机IP:10.19.210.249
安装遇到的问题:
1、由于第一安装时,配置不足,导致安装完后无法运行的情况,页面访问出现502等异常。
正式安装(英文版):
1、拉取镜像
docker pull gitlab/gitlab-ce

2、配置挂载到外部的文件夹,共三个:配置文件 config、日志文件 logs、数据文件 data
mkdir /docker/gitlab/config mkdir /docker/gitlab/logs mkdir /docker/gitlab/data

3、创建容器
docker run —detach —publish 443:443—publish 80:80—publish 22:22—name gitlab —restart always —volume /docker/gitlab/config:/etc/gitlab —volume /docker/gitlab/logs:/var/log/gitlab —volume /docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
4、生成容器后访问
10.19.210.249:80 即可访问gitlab,访问成功后,会让你输入一个8位的密码,用户名默认:root,这个账户是管理员账户。
到此,用户就可以正常使用了。
中文版安装:
1、拉取中文镜像
docker pull twang2218/gitlab-ce-zh:latest

注意:
修改了cloneIP后需要删除镜像,重新运行