GitLab快速入门2-Gitlab基本操作

用户及群组管理

创建群组

填写群组名称及路径,并选择相应的可见性后点击创建群组,如下图:

创建用户

点击管理中心图标,直接点击新建用户即可,如下:

填写必要信息,根据用户实际需求配置访问类型等信息后即可创建一个用户,如下:

一旦用户创建,gitlab将向用户的邮件发送 一封邮件,用户根据提示修改自己的登陆密码,密码修改后用户也会收到密码已修改成功的邮件。

将用户加入群组

群组-->浏览群组 也可以右边窗口的搜索功能

打开群组管理页面后,选择成员,并填写成员信息,角色权限,过期时间(可不设置)后,点击邀请,如下:

同样用户也将收到相应的邮件通知已被加入到相应的群组。

项目管理

创建项目

创建项目时可以创建一个空白项目,可以根据模板快速创建,也可从外部导入项目,可根据实际需求选择。

创建一个空白项目为例,填入项目名称,项目描述,选择可见性即可创建一个项目,如下:

创建一个自述文件

代码提交管理流程

在企业中都有各自的代码提交管理流程,一般说来流程如下:

  1. 项目管理人员创建项目,把相应的开发人员关联到该项目,并给予相应的权限
  2. 开发人员fork该项目到自己帐号的仓库中进行开发工作,当一个功能或一个版本开发完成后提交PR,相应人员进行代码审核后允许合并到相应的分支
  3. CI/CD持续集成工具拉取相应分支的代码进行代码构建和发布到相应环境

邀请成员关联到相应的项目,如下:

点击相应的项目跳转到项目管理页面,点击左边侧栏的成员,在右侧可邀请单个用户,也可邀请一个群组,根据实际情况选择相应的访问级别。

群组被邀请后就拥有相应项目的指定权限。关于各种访问级别的权限角色可参考:https://abd.mygitlab.cn/help/user/permissions

使用zhaocj用户登陆,就可以看到已被赋予权限的相应项目,把该项目fork到自己的帐号下

Fork成功后在该用户的名称下就有该项目

接下开发人员就需要把该仓库克隆到本地进行相应的开发工作,这里需要上传用户自己开发电脑的key到gitlab中

在用户的属性配置中进行密钥的增加

增加密钥操作用户也会收到相应的邮件提醒。

获取项目的克隆地址,使用ssh克隆

在自己的主机上打开一个终端,克隆代码到本地

zhaochangjian@macbp python % git clone ssh://git@abd.mygitlab.cn:5022/zhaocj/test-python.git
Cloning into 'test-python'...
The authenticity of host '[abd.mygitlab.cn]:5022 ([192.168.3.59]:5022)' can't be established.
ECDSA key fingerprint is SHA256:hqOWCO4fEFKuEG/V/tT7caE28VIAqt2Vh4u0IU5pNOA.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[abd.mygitlab.cn]:5022,[192.168.3.59]:5022' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
zhaochangjian@macbp python % ls -al
total 0
drwxr-xr-x  3 zhaochangjian  wheel   96  3 25 16:40 .
drwxrwxrwt  8 root           wheel  256  3 25 16:38 ..
drwxr-xr-x  4 zhaochangjian  wheel  128  3 25 16:40 test-python

仓库克隆下来后就可以进行开发工作,当一个功能开发完毕后把代码提交到自己的仓库中

zhaochangjian@macbp python % cd test-python
zhaochangjian@macbp test-python % ls
README.md
zhaochangjian@macbp test-python % echo "import os" > main.py
zhaochangjian@macbp test-python % git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	main.py

nothing added to commit but untracked files present (use "git add" to track)
zhaochangjian@macbp test-python % git commit -m "file: add main.py"
[master 83cdbc9] file: add main.py
 1 file changed, 1 insertion(+)
 create mode 100644 main.py
 
zhaochangjian@macbp test-python % git push origin main  # 提交到仓库
error: src refspec main does not match any.
error: failed to push some refs to 'ssh://git@abd.mygitlab.cn:5022/zhaocj/test-python.git'
zhaochangjian@macbp test-python % git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://abd.mygitlab.cn:5022/zhaocj/test-python.git
   6c243a5..83cdbc9  master -> master

提交成功后在自己的仓库中可见提交的文件

而此时文件只是存在于自己的仓库中,而原始项目中此时不会该文件存在,需要用户提交一个合并请求

根据实际情况选择所需要合并的分支

点击上图中绿色按键后填写标题,描述信息,还可选择此次合并提交的审核人员,是否是一个里程碑,以及标签

提交合并请求后可自己批准该合并请求,并编写相应的评论信息,这不是必选的。

合并请求提交后切换为root帐号或有相应管理权限的帐号,可以看到相应的合并请求

点击该合并请求

再点击该请求

点击合并。在该页面下方同样可以给出评论信息。

合并完成后原始仓库中的代码才真正与开发用户的仓库同步。

项目持续部署

Gitlab集成了持续集成和持续交付工具,如果使用的是Jenkins,那还需要在Gitlab中配置deploy key。在原始仓库的仓库管理界面左侧的设置菜单中进行Deploy keys进行配置。