GitLab快速入门2-Gitlab基本操作
用户及群组管理
创建群组
填写群组名称及路径,并选择相应的可见性后点击创建群组,如下图:
创建用户
点击管理中心图标,直接点击新建用户即可,如下:
填写必要信息,根据用户实际需求配置访问类型等信息后即可创建一个用户,如下:
一旦用户创建,gitlab将向用户的邮件发送 一封邮件,用户根据提示修改自己的登陆密码,密码修改后用户也会收到密码已修改成功的邮件。
将用户加入群组
群组-->浏览群组 也可以右边窗口的搜索功能
打开群组管理页面后,选择成员
,并填写成员信息,角色权限,过期时间(可不设置)后,点击邀请,如下:
同样用户也将收到相应的邮件通知已被加入到相应的群组。
项目管理
创建项目
创建项目时可以创建一个空白项目,可以根据模板快速创建,也可从外部导入项目,可根据实际需求选择。
创建一个空白项目为例,填入项目名称,项目描述,选择可见性即可创建一个项目,如下:
创建一个自述文件
代码提交管理流程
在企业中都有各自的代码提交管理流程,一般说来流程如下:
- 项目管理人员创建项目,把相应的开发人员关联到该项目,并给予相应的权限
- 开发人员fork该项目到自己帐号的仓库中进行开发工作,当一个功能或一个版本开发完成后提交PR,相应人员进行代码审核后允许合并到相应的分支
- 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
进行配置。