释放双眼,带上耳机,听听看~!
上章节我们介绍了GitLab的简介及部署,这章节开始对GitLab界面操作做个教程,如需了解GitLab简介及部署请参考:https://abcops.cn/gitlab/
创建对象
创建用户
新建用户
输入用户的相关信息
我这边随后又创建了dev1和dev2两个用户
创建用户组
把用户加入到用户组
创建项目
为项目添加用户
把我们刚创建的三个用户加入abcops-project项目中
我把其它两个用户也加入了进来
这里可以看到该项目中的所有用户
修改用户密码
下面可以修改用户的密码及属性信息
最下面有个Save changes保存键,记得保存!!!
然后退出登录,使用我们新建的用户登录,首次登录会让用户修改密码
然后再重新登录
SSH KEY管理
我们新建的用户登录后,开始导入密钥
个人SSH KEY
每个机器上的ssh key是唯一的,一般我们一个账号对应一个开发者,一个开发者对应一台电脑,在开发者的电脑上生成key,然后把开发者电脑生成的key复制到开发者用户的ssh keys中,以下针对Linux、Windows、Mac OX来分别对应不用的用户导入Key
Linux对应dev1用户
Windows对应dev2用户
Mac OS对应leader领导
Linux生成Key
Linux是dev1用户的电脑
作为开发者客户端,肯定是需要使用git来上传代码到gitlab仓库的,我们这里安装下仓库
#yum安装
yum install git -y
#源码安装请参考:https://abcops.cn/git-installation-in-each-position/
#使用ssh-keygen来生成key,下面选项直接回车即可
[root@abcops_node2 /]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:0Y9Qah2VJ4a82PPrpgc5aG7ubMkEnvwraWyAAiRHxeY root@abcops_node2
The key's randomart image is:
+---[RSA 2048]----+
| ..o. .oo.. |
|... o =o.+ . |
|o. o =ooo o |
|. E ...o+o |
|. . o oS..+. |
|. . . + + + . |
| . o B . o . |
| *.B + |
| o *=..=. |
+----[SHA256]-----+
[root@abcops_node2 /
把生成的公钥导入GitLab用户的ssh key
id_rsa:私钥
id_rsa.pub:公钥
复制以下公钥
Linux的Key就导入完成了
Windows生成Key
Windows对应的用户为dev2
Windows客户端需要通过git客户端来生成ssh key
所以我们要先在windows上安装git客户端
1.下载git的win版本
下载地址:https://git-scm.com/download/win
2.安装git客户端
以下简要说几个关键步骤
3.win git客户端生成ssh key密钥
安装完成后,右键选择git bash或者cmd命令行
同样使用ssh-keygen来生成密钥
生成过之后可以看到密钥在我们当前用户下的.ssh下
查看并复制公钥文件
填入gitlab中dev2用户的ssh key中
Mac OS生成Key
Mac 对应的用户为leader
1.Mac OS安装Git客户端
XuWeiLiang-abcops:~ xuweiliang$ brew info git #查看git信息
XuWeiLiang-abcops:~ xuweiliang$ brew install git -y #安装git
2.Mac生成Key
XuWeiLiang-abcops:~ xuweiliang$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xuweiliang/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/xuweiliang/.ssh/id_rsa.
Your public key has been saved in /Users/xuweiliang/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:VpzhIZiaOtR2gmukGDLeeL7FOVHx+3zd9/u5JTQlvRI xuweiliang@XuWeiLiang-abcops
The key's randomart image is:
+---[RSA 2048]----+
| +. o |
| o o+ + . |
| o o . .= E. o|
|+ + * o .. .o.|
|+*o+ + S. .o. |
|oo=o. o. o .o..|
| .o. = o ...+|
| .. . . .=|
| .. +*|
+----[SHA256]-----+
3.查看公钥并复制到GitLab中
Git上传拉取操作
开发者客户端操作:
1.克隆GitLab中的项目到本地
以下的git@xx是在gitlab的项目中所提供,客户端有两种方式和gitlab建立连接,但是一般我们都是用ssh密钥方式,安全
[root@abcops_node2 /]# git clone git@10.211.55.12:root/abcops-project.git
2.创建代码的一个分支
#首先我们要先进入项目abcops-project路径内
[root@abcops_node2 /]# cd /abcops-project/
#创建一个名叫code的分支
[root@abcops_node2 abcops-project]# git checkout -b code
#查看分支状态
[root@abcops_node2 abcops-project]# git status
3.编写代码
[root@abcops_node2 abcops-project]# echo "
Welocome to abcops
" > index.html4.提交代码
#全局设置
[root@abcops_node2 abcops-project]# git config --global user.name "dev1" #输入此开发者客户端在gitlab中的用户名
[root@abcops_node2 abcops-project]# git config --global user.email "dev1@abcops.com" #输入此开发者客户端在gitlab中的邮箱
[root@abcops_node2 abcops-project]# git add index.html 或者 git add . #将文件内容添加到索引中,git add .是将当前目录都添加到索引中
[root@abcops_node2 abcops-project]# git commit -m "index.html" #提交我们的代码
[code (root-commit) e148e93] index.html
1 file changed, 1 insertion(+)
create mode 100644 index.html
5.上传代码到GitLab存储库中
[root@abcops_node2 abcops-project]# git push -u origin code
Counting objects: 3, done.
Writing objects: 100% (3/3), 235 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: GitLab:
remote: A default branch (e.g. master) does not yet exist for root/abcops-project
remote: Ask a project Owner or Maintainer to create a default branch:
remote:
remote: http://10.211.55.12/root/abcops-project/-/project_members
remote:
To git@10.211.55.12:root/abcops-project.git
! [remote rejected] code -> code (pre-receive hook declined)
error: failed to push some refs to 'git@10.211.55.12:root/abcops-project.git' #我这里怎么上传也没有上传成功
我看到网上有人说先使用 git pull 命令把master分支下载下来,然后再同步等等,最好都是失败
解决方法:在GitLab项目中先创建一个readme的文件
再次上传
[root@abcops_node2 abcops-project]# git push -u origin code
Counting objects: 3, done.
Writing objects: 100% (3/3), 235 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for code, visit:
remote: http://10.211.55.12/root/abcops-project/merge_requests/new?merge_request%5Bsource_branch%5D=code
remote:
To git@10.211.55.12:root/abcops-project.git
* [new branch] code -> code
Branch code set up to track remote branch code from origin.
上传成功
5.查看GitLab上已经上传的代码
上传成功!!!
ISSUE管理
ISSUE管理是什么呢,一般是指leader给devs分配任务,可以通过gitlab来完成
上面我们给abcops-project项目中的leader、dev1-abcops、dev2-abcops分配了同样的权限,现在我们将leader在项目中的权限修改为所有者
创建milestone
接下来我们使用leader用户登录gitlab,然后创建一个milestones,被称为里程碑
别忘了下面的Create Milestones创建里程碑按钮!!!
创建issue
当我们创建好里程碑以后,我们需要创建任务,然后把任务关联到里程碑中,再把任务分发给abcops-project中的开发者
leader的任务已经分配完成,我们登录dev1和dev2来查看他们是怎么接收任务通知的
我登录了dev2,发现了两个通知信息
可以看到dev2的任务是审核,那就开始干活吧
开发者开发代码并上传
#克隆项目到本地
$ git clone git@10.211.55.12:root/abcops-project.git
#进入项目目录
$ cd abcops-project/
#创建一个分支
$ git checkout -b shenhe
#代码写入shenhe.html
$ echo "I'm dev2 and windiws" > shenhe.html
#输入全局账号及邮箱
$ git config --global user.name "dev2"
$ git config --global user.email "dev2@abcops.com"
#将当前目录添加到索引
$ git add .
#提交shenhe.html代码
$ git commit -m "shenhe.html"
#将创建的分支上传到gitlab服务器
$ git push -u origin shenhe
然后我们登录到gitlab,查看分支是否上传成功
合并分支到主干
还是登录dev2账号,找到项目,然后选择Merge Requests,点击创建 new merge request
然后我们退出使用leader用户登录,会发现有消息通知说dev2发来的审核功能已经开发完毕
删除过源分支后,会发现项目中没有了shenhe,点击master,却在其中
开发者更新本地代码
现在我们的gitlab服务器上的代码是最新版本,我们的开发者也需要同步,因此开发者在本地客户端也需要使用 git pull来更新本地代码
$ git pull