开发协同工具之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分支再次推送了新代码,那么合并请求合并的是最新代码
posted @ 2022-03-21 15:24  萧小满  阅读(190)  评论(0)    收藏  举报