GitLab详细配置使用教程

释放双眼,带上耳机,听听看~!

上章节我们介绍了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 "<h1>Welocome to abcops</h1>"  > index.html

4.提交代码

#全局设置
[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

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索