开发协同工具之GitLab初步
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务,同时提供了代码审核、wiki、issue跟踪、CI/CD等实用功能。作者团队目前使用Gogs托管代码,但在分支管理和代码审核上存在一些缺陷,本文包括后续有关团队协作、CI/CD的相关内容均是在调研GitLab后形成的记录文档,仅供参考。
一、环境搭建
1. docker
安装参考:https://docs.docker.com/get-docker/
2. portainer(可选)portainer是一个docker的可视化的管理工具
docker run -d -v \"/var/run/docker.sock:/var/run/docker.sock" -p 9000:9000 \portainer/portainer
访问地址:http://localhost:9000
3. gitlab-ce
docker run -d-p 80:80 \--name gitlab \--restart always-v /path/to/gitlab/config:/etc/gitlab-v /path/to/gitlab/logs:/var/log/gitlab-v /path/to/gitlab/data:/var/opt/gitlabgitlab/gitlab-ce:lates
注意:
-
-v 挂载点冒号前为物理机器上的实际目录,需提前建好,可根据实际需求调整。冒号后为挂载点,不要修改
-
物理机器上的实际目录需要在docker的文件共享路径下,设置路径为:preferences->resources->file sharing
-
在portainer中启动gitlab,注意启动需要一定时间。然后访问:http://localhost:80
-
用户名:root,密码查看路径: /etc/gitlab/initial_root_password 。为了方便后续使用,登录后可更改密码
二、基本用法
1. 项目创建
Menu - > Projects -> Create new project

2. 建立团队
Project information -> Members

3. 基于角色的分支保护
Repository -> Branches -> New branch

Settings -> Repository -> Protected Branches

-
只允许推送到dev分支,main分支不允许推送
-
main分支只允许维护管理人通过接受merge reqeust进行合并

developers角色clone代码到本地,添加demos.js可以正常push到dev分支,但不能push到main分支,要合并到main分支只能提交merge request
4. 合并请求(Merge request)
Developers提交合并请求,可指定Reviewer

5. 合并审核

查看变更

注意:
-
合并请求是基于最新一次提交的。Cherry-pick用于提交历史某个版本的合并请求
Repository -> Commits -> 选择某次提交 -> Option -> Cherry-pick

- 当提交合并请求后,如果dev分支再次推送了新代码,那么合并请求合并的是最新代码

浙公网安备 33010602011771号