Gitlab学习笔记--开发代码提交处理流程

一般公司代码提交及合并流程

  • PM(项目主管/项目经理)在gitlab创建任务,分配给开发人员

  • 开发人员领取任务后,在本地使用git clone拉取代码库

  • 开发人员创建开发分支(git checkout -b dev),并进行开发

  • 开发人员完成之后,提交到本地仓库(git commit )

  • 开发人员在gitlab界面上申请分支合并请求(Merge request)

  • PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)

  • 开发人员在gitlab上Mark done确认开发完成,并关闭issue。这一步在提交合并请求时可以通过描述中填写"close #1"等字样,可以直接关闭issue

创建项目管理用户

创建用户zyi,helen和linda,其中zyi为admin用户

在这里插入图片描述
用户添加完毕后,gitlab 会给用户发一封修改密码的邮件,各用户需要登录自己的邮箱,并点击相关的链接,设置新密码。

向group添加用户

将用户zyi添加到组中,指定为本组的 owner;
将用户linda、Hellen 添加到组中,并指定为Developer
在这里插入图片描述

创建项目Project

使用 zyi用户的身份与密码登录到 gitlab 界面中,并创建项目 Project-01,建好以后,系统会提示需要SSH Key
在这里插入图片描述

[root@git-client ~]# useradd zyi
[root@git-client ~]# su - zyi
[zyi@git-client ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zyi/.ssh/id_rsa): Created directory ‘/home/zyi/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zyi/.ssh/id_rsa.
Your public key has been saved in /home/zyi/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:W2jnRUhrEbJNG0HWwygNg3mmJuRR425+don/Ckj2FUg zyi@git-client
The key’s randomart image is:
±–[RSA 3072]----+
| .ooE+X* |
| o.oo+Xo*+ |
| o …+o.B … |
| o.o o o |
| o= S + . |
| = + B o |
| o B + |
| o + |
| oo. |
±—[SHA256]-----+
[zyi@git-client ~]$ ll -a
total 12
drwx------. 5 zyi zyi 104 Jul 15 01:38 .
drwxr-xr-x. 5 root root 43 Jul 15 01:36 …
-rw-r–r--. 1 zyi zyi 18 Jan 12 2021 .bash_logout
-rw-r–r--. 1 zyi zyi 141 Jan 12 2021 .bash_profile
-rw-r–r--. 1 zyi zyi 376 Jan 12 2021 .bashrc
drwx------. 2 zyi zyi 6 Jul 15 01:36 .cache
drwxr-xr-x. 4 zyi zyi 39 Jul 13 02:34 .mozilla
drwx------. 2 zyi zyi 38 Jul 15 01:38 .ssh
[zyi@git-client ~]$ cat ./.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBn2QHCmq3VpBpTz15DZ8HuE1rNuGqphAYhssjItVc0hTQQ/IY9tZ+I7VSgIaCVLqPs6mMX5Q4Ix+QdRWtJ8XxSeGA6wiPkTVmqCpmqfef+NGQxvDQ81vMYPvbDQ+s1GxTUZzMFA2zvoD4AKLlfKiBAGQglsXjgG5D0I4iCMNv51kWxYEFpu+WYAHuxPn1ZNFygXbMDQP9aTlAfZgUnCBv19VoU5wpX0oIAzaSSRQzYZw6tvyQ/7Y2g4T125qvmWsLnXaHFibK0eiACWOXbV8R44nu3694bnsNFyn3J4kW2i0QK1gpt6j4dvN6eRRfi3kYcCg36/0Dl3UIhtqYB1TrQHJIUALNfwLdWVsUssk1Njz2XSxBHo10sFb5CnE49JYGjoZpF1h58oGiWsF4nigF7i0I6PsAm0Hc52MYAOaiQxYMsvu/cbH5Ux4K9QYFqB7YIUDMMcD3ykQ663SvZdbRhWXvOIT6iQx34b/MtdjNBzi1hSZf972thu+OJLmEASs= zyi@git-client

gitlab上添加以上Key
在这里插入图片描述

添加Branch

首先要上传一个文件,否则界面出不来
在这里插入图片描述
点击Project-01下的Branch
在这里插入图片描述
点击右上角New branch,便可以添加Branch了
添加成功之后,界面:
在这里插入图片描述

提交合并

在dev分支上传lic.txt
在这里插入图片描述
创建合并请求
在这里插入图片描述
zyi用户可以Approve
在这里插入图片描述
在这里插入图片描述
可以看到dev分支已经合并了
在这里插入图片描述

在客户端操作
  • 配置参数

[zyi@git-client ~]$ git config --global user.email “zyi@etaon.top”
[zyi@git-client ~]$ git config --global user.name “zyi”

  • Clone 项目

[zyi@git-client ~]$ git clone git@git-server.corp.tanzu:zyi/project-01.git
Cloning into ‘project-01’…
remote: Enumerating objects: 7, done.
remote: Counting objects: 100% (7/7), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 7 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (7/7), done.
Resolving deltas: 100% (1/1), done.
[zyi@git-client ~]$ cd
.cache/ .mozilla/ project-01/ .ssh/
[zyi@git-client ~]$ cd project-01/
[zyi@git-client project-01]$ ll
total 12
-rw-rw-r–. 1 zyi zyi 294 Jul 15 05:33 lic.txt
-rw-rw-r–. 1 zyi zyi 5155 Jul 15 05:33 README.txt

  • 添加新文件

[zyi@git-client project-01]$ vim test.sh
[zyi@git-client project-01]$ cat test.sh
#!/bin/bash
echo “gitlab test”

  • 提交到 main 分支

[zyi@git-client project-01]$ git add .
[zyi@git-client project-01]$ git commit -m 'cd028dcc2845e378c4db50ab58619f7cf8e8a70f’
On branch main
Your branch is ahead of ‘origin/main’ by 1 commit.
(use “git push” to publish your local commits)
nothing to commit, working tree clean
[zyi@git-client project-01]$ git push -u origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 325 bytes | 325.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To git-server.corp.tanzu:zyi/project-01.git
cd028dc…aa8a774 main -> main
Branch ‘main’ set up to track remote branch ‘main’ from ‘origin’.

在UI上面查看:
在这里插入图片描述
在这里插入图片描述

使用helen用户

注意:Developer角色默认并没有提交main的权限
在客户端,切换helen用户并生成Key

[root@git-client ~]# su - helen
[helen@git-client ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/helen/.ssh/id_rsa): Created directory ‘/home/helen/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/helen/.ssh/id_rsa.
Your public key has been saved in /home/helen/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:TUqxIl5rZPel9par2bnc+OzJ4PQS/zCR+/9Jhx6olpY helen@git-client
The key’s randomart image is:
±–[RSA 3072]----+
| . |
| o |
| . = + . . |
| . = = = o . |
| . o S = o |
| . . …o + |
| oBo*…|
| EO.@o*o|
| o+.O=XoB|
±—[SHA256]-----+
[helen@git-client ~]$
[helen@git-client ~]$ ls
[helen@git-client ~]$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZY1RwMK3Smx4kCKbz4rBhu70t1ZdRR8LgcyQoczybSmZszLPCM7Ic03QK+ZdEBl59NbXWSvjiTbZCEeKzxThwqjr/HTBtF9SR6Govcocmnpt3vQfXn0oiceSlZ4IjRIvmEm6wzpeXODOdFd6W47WdR/N/IAd7Jq8HoOYHCF0M9GvutSA600LzVIQjx2iaJVGDcC5EnDaP5Ql5J7xpsZZqJeN0tLEurJfpresj0ijFuS4fX26ePci3G2TJ5lu3WnyE2qpm88GBulaK59YWco6JX6hij49YMxghN7VnLKRSMbi6PAai5rNpWLwh0GBQWJVKNzvnieqEoJ7GC6Errufdk3PGHyI2InAb65nIRV8pRavQ75ptTab8VB6d4SUfOX3VRQdOpWfIaYR7fBl9JAmI6/tfVUZshiItXL1MMRS1luZJmufnd5owRG8Ce3ezkPvbyDRXz8UyT0qAJhahGPbf1GOwy91Yt43GYGy3sKLfiZnfC/fkBYJPdLKRpoiUmkE= helen@git-client

配置参数

[helen@git-client ~]$ git config --global user.email "helen@etaon.top"
[helen@git-client ~]$ git config --global user.name "helen"

Clone并切换到dev分支

[helen@git-client ~]$ git clone git@git-server.corp.tanzu:zyi/project-01.git
Cloning into ‘project-01’…
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10 (delta 2), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), done.
Resolving deltas: 100% (2/2), done.
[helen@git-client ~]$ cd project-01/
[helen@git-client project-01]$ git checkout dev
Branch ‘dev’ set up to track remote branch ‘dev’ from ‘origin’.
Switched to a new branch ‘dev’

新建文件并提交

[helen@git-client project-01]$ vim helen.sh
[helen@git-client project-01]$ cat helen.sh
#!/bin/bash
echo “brahch test”
[helen@git-client project-01]$ git add .
[helen@git-client project-01]$ git commit -m "20210715"
[dev 5afa05c] 20210715
1 file changed, 3 insertions(+)
create mode 100644 helen.sh
[helen@git-client project-01]$ git push -u origin dev
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 354 bytes | 354.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: To create a merge request for dev, visit:
remote: http://git-server.corp.tanzu/zyi/project-01/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev
remote:
To git-server.corp.tanzu:zyi/project-01.git
aa8a774…5afa05c dev -> dev
Branch ‘dev’ set up to track remote branch ‘dev’ from ‘origin’.

在UI页面以helen登录,提出合并请求;zyi合并
在这里插入图片描述
在这里插入图片描述
以上。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值