一、创建用户

1.填写用户信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pyMSD8uR-1650354069518)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418183234249.png)]](https://img-blog.csdnimg.cn/de3aaad394794064a6f6d2582ce02b24.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_15,color_FFFFFF,t_70,g_se,x_16)
2.分配权限
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CO4qN9IL-1650354069519)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418183332332.png)]](https://img-blog.csdnimg.cn/9c15319cb823474288a5b218625368e1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
3.修改用户初始密码
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DqSML8cZ-1650354069520)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418183600916.png)]](https://img-blog.csdnimg.cn/51a0616ffb2a43cb9f2eb7882bd58e47.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16) ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ODzOesnf-1650354069520)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418183628845.png)]](https://img-blog.csdnimg.cn/4704c257a1434de3a5a6aa6cd49a2715.png)
然后保存修改
二、将用户添加到指定的项目组
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T0TLOhvk-1650354069521)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418183938365.png)]](https://img-blog.csdnimg.cn/10b003ff7f4b43d4b46cd0fb042363e9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_13,color_FFFFFF,t_70,g_se,x_16) ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jR5zE0u9-1650354069522)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418184025415.png)]](https://img-blog.csdnimg.cn/dd24b8c64465441d948180cb4451227b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_15,color_FFFFFF,t_70,g_se,x_16)
这里就看到我们添加的张三用户了 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MyjfSlBs-1650354069522)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418184139374.png)]](https://img-blog.csdnimg.cn/63f477ec3bd948e583bc0d738af824db.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_14,color_FFFFFF,t_70,g_se,x_16)
1.使用张三的身份克隆代码
[root@node-2 data]
Cloning into 'taikang_test'...
Password for 'http://zhangsan@pangbing.com':
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
[root@node-2 data]
[root@node-2 taikang_test]
readme rootv1
[root@node-2 taikang_test]
[root@node-2 taikang_test]
readme rootv1 zhangsanv1
[root@node-2 taikang_test]
[root@node-2 taikang_test]
[master 352056b] zhangsanv1
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 zhangsanv1
2.提交代码
[root@node-2 taikang_test]
Password for 'http://zhangsan@pangbing.com':
Counting objects: 3, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 274 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://zhangsan@pangbing.com/root/taikang_test.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'http://zhangsan@pangbing.com/root/taikang_test.git'
这时候我们提交代码报了一个错误
2.1 全局分支保护
这是因为默认 master 分支是处于被保护状态下的,develop 角色是没有权限提交到 master 分支的。这是全局配置的分支保护 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7rErezfR-1650354069523)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220418191511945.png)]](https://img-blog.csdnimg.cn/3e321679ff8346aab460a823ca4f4809.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16) 完全保护:开发人员不能推送提交,只有主程序员可以。不允许任何人强制推送或删除分支
2.2 项目分支保护功能
在每一个项目中都可以设置属于自己的项目的分支保护 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HsR85cNJ-1650354069525)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419131043044.png)]](https://img-blog.csdnimg.cn/50caed4ec1c34e838112087d7d33fb2c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16) 由此可以看出上边提交代码错误,是因为zhangsan是开发者,没有权限提交到gitlab代码库
3.修改用户提交权限
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wFi39BYv-1650354069526)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419131836216.png)]](https://img-blog.csdnimg.cn/b962a0ca61734df790ad5d03c0d44e07.png) 这样就开发者也就可以提交到master分支了。或者把zhangsan直接变成
[root@node-2 taikang_test]
[root@node-2 taikang_test]
[master 3a22927] zhangsanv1
1 file changed, 1 insertion(+)
[root@node-2 taikang_test]
Password for 'http://zhangsan@pangbing.com':
Counting objects: 8, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (6/6), 524 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To http://zhangsan@pangbing.com/root/taikang_test.git
2960619..3a22927 master -> master
三、生产中分支保护设置
在实际生产中 会设置一个test的分支,允许开发和主程序员同时push代码。但是master只能主程序员可以push.然后在将test分支合并到master分支上 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7qszIedD-1650354069528)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419132603411.png)]](https://img-blog.csdnimg.cn/0d7eee00f5bb400bbcb642442bd30209.png)
四、复现生产分支保护设置
1.新建分支
图1: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGnQZKEr-1650354069529)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419133508536.png)]](https://img-blog.csdnimg.cn/1b3ab5b5ff67401485adeb03316c8c44.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16) 图2: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GQACLAc9-1650354069530)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419133422117.png)]](https://img-blog.csdnimg.cn/901316f75def40489c23c63992aec964.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
图3:分支已经创建完成 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJo3FoIh-1650354069531)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419133604485.png)]](https://img-blog.csdnimg.cn/3fe9ac4690b04f9282811ef6f1707e0f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_13,color_FFFFFF,t_70,g_se,x_16)
2.分支上新建文件
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NA2IUTyj-1650354069532)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419133834215.png)]](https://img-blog.csdnimg.cn/b8438c6b5b454a03aa89d81d026e6e6e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
3.客户端克隆仓库
[root@node-2 data]
Cloning into 'taikang_test'...
Password for 'http://zhangsan@pangbing.com':
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 26 (delta 3), reused 11 (delta 2)
Unpacking objects: 100% (26/26), done.
虽然刚克隆下来的时候没有test-500分支,其实已经克隆下来了 直接切换分支即可。这里发现test-500文件也存在
[root@node-2 data]
[root@node-2 taikang_test]
readme zhangsanv1
[root@node-2 taikang_test]
* master
[root@node-2 taikang_test]
Branch test-500 set up to track remote branch test-500 from origin.
Switched to a new branch 'test-500'
[root@node-2 taikang_test]
readme test-500 zhangsanv1
在test-500分支上创建新文件在提交
[root@node-2 taikang_test]
[root@node-2 taikang_test]
[root@node-2 taikang_test]
[root@node-2 taikang_test]
[test-500 5e6f503] test01
1 file changed, 1 insertion(+)
create mode 100644 test01
[root@node-2 taikang_test]
Password for 'http://zhangsan@pangbing.com':
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 332 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for test-500, visit:
remote: http://pangbing.com/root/taikang_test/merge_requests/new?merge_request%5Bsource_branch%5D=test-500
remote:
To http://zhangsan@pangbing.com/root/taikang_test.git
f358476..5e6f503 test-500 -> test-500
4.以zhangsan的身份登录gitlab
图1: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RZfJLPx5-1650354069533)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419144406876.png)]](https://img-blog.csdnimg.cn/a1dbc12115124d37abcea4c07ad0d45a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_14,color_FFFFFF,t_70,g_se,x_16) 图2:
在这里发现 系统会自动提示在taikang_test项目中有可以合并分支的请求 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mff6HMe9-1650354069534)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419144518190.png)]](https://img-blog.csdnimg.cn/29ea84ffb0ab4f8c9d71b7396caa4c46.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16) 当然点击项目进入项目主页之后也会看到 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wIdKaNbq-1650354069535)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419152027022.png)]](https://img-blog.csdnimg.cn/47395107716b4cdca557e5069e58810e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
5.发送合并代码请求
图1: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QCXynoxt-1650354069537)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419152122985.png)]](https://img-blog.csdnimg.cn/6aa32222856c4986826221be52115aca.png) 图2: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FgqUKGoR-1650354069538)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419152206112.png)]](https://img-blog.csdnimg.cn/395f0e71f8414e869e17d35869629be9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
6.使用管理员登录gitlab 处理合并请求
 图2: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FkOSsz0f-1650354069540)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419152955265.png)]](https://img-blog.csdnimg.cn/4dfbf3ea82f2400db7ee153c6efc7388.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_9,color_FFFFFF,t_70,g_se,x_16) 图3: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmbeMH9D-1650354069541)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419153016384.png)]](https://img-blog.csdnimg.cn/e7f93eea5a344be5b1e255a50aca4804.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_15,color_FFFFFF,t_70,g_se,x_16) 图4: ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JempBlFm-1650354069542)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419153057031.png)]](https://img-blog.csdnimg.cn/7aec26ccbc88486daa63b4f2ed21b9a3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
7.验证合并
此时我们发现在master上已经有test-500分支上的文件了 ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FI7xiRd4-1650354069542)(gitlab%E5%B8%B8%E8%A7%84%E9%85%8D%E7%BD%AE.assets/image-20220419153218252.png)]](https://img-blog.csdnimg.cn/f447ee6681e646229d0293b5a2ac8627.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc21pbGVfcGJi,size_20,color_FFFFFF,t_70,g_se,x_16)
|