|NO.Z.00015|——————————|CloudNative|——|CI/CD&GitLab操作 .V05|——|GitLab.代码处理|合并分支|Clone项目|
一、gitlab 代码处理
### --- 代码处理流程
~~~ # 公司代码提交合并流程
~~~ PM(项目主管/项目经理)在gitlab创建任务,分配给开发人员
~~~ 开发人员领取任务后,在本地使用git clone拉取代码库
~~~ 开发人员创建开发分支(git checkout -b dev),并进行开发
~~~ 开发人员完成之后,提交到本地仓库(git commit )
~~~ 开发人员在gitlab界面上申请分支合并请求(Merge request)
~~~ PM在gitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)
~~~ 开发人员在gitlab上Mark done确认开发完成,并关闭issue。
~~~ 这一步在提交合并请求时可以通过描述中填写"close #1"等字样,可以直接关闭issue
二、创建公司用户并为其分组
### --- 创建用户:创建项目管理用户 Tompson
~~~ # ——>Admin Area——>Users——>New users——>Account——>Regular——Create user——>END
~~~ 同样的方法,再创建 Eric 、Hellen 用户。
~~~ 用户添加完毕后,gitlab 会给用户发一封修改密码的邮件,各用户需要登录自己的邮箱,
~~~ 并点击相关的链接,设置新密码。
~~~ # 用户分组:将 Tompson 用户添加到组中,指定T为本组的 owner
~~~ # 用户分组:同样的方法将用户Eric、Hellen 添加到组中,并指定为Developer



三、创建项目并导入公钥
### --- 创建项目并导入公钥
~~~ # 使用 Tompson 用户的身份与密码登录到 gitlab 界面中,并创建项目 Project
~~~ ——>Create a project——>Create blank project——>END
~~~ # 指定项目的存储路径和项目名称
~~~ # 把客户端的公钥添加到这里之后才会出现下图的内容
~~~ 公钥创建
[root@server11 ~]# ssh-keygen
[root@server11 ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXG156FsrS9MDW0gkYI+uPHn8EsLcHbxJog1NC2Q4r7D4WT4yhSvO6cywcWz1Q9ZO6fhSIvI3cUBSL3KHmSWnzfwixis2TN4/uizQ3yAbFzn1MM2UUAH7aSJSWqMj4Zo/q0DMDDBW5Bh3Ttm+lKoA7X8FPt61Y5sGGtEeEviObk2TQXBwyrXw7OYJqBvOfYQGzysqTZkVNrsl/e3x3/0Yqqw2fAIl08MpCaYxSkmiJG51kfxO+WQ+49m/vl4Rn722cxpooff6/v3fNeV2dBThGlDPohcfJsOs1YkQZwoKGcjFPIy4J2MR2K/Mue2iRGe0afP6hyX2A86NqX8VHVq2n root@server11
~~~ # 配置gitlab公钥




四、创建新分支:为项目创建 Dev分支
### --- 创建新分支
~~~ 因为版本的原因,需要先在项目里面添加一个文件,才能显示下图中创建分支的操作
~~~ Projects——>Your Projects——>Jenkins——>Chathall——>New branch
~~~ ——>Branch name:dev——>Create branch

五、在gitlabclient添加用户并导入秘钥
### --- 在 client 上添加 Tompson 的用户
~~~ centos7.x 10.10.10.12 client
[root@server12 ~]# useradd Tompson
[root@server12 ~]# useradd Hellen
[root@server12 ~]# useradd Eric
[root@server12 ~]# useradd test
[root@server12 ~]# su - Tompson
~~~ 生成用户秘钥
[Tompson@server12 ~]$ ssh-keygen
[Tompson@qfedu.com ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZ8cRGHej+sZzlmK36W5MUXMLOGdTwFI9Jj44mGuabZCrlYW4GDpL6ppezN+Sur0wHtnKonYJzm8ntqS0S0UHyaPPQPl9Mrs/6Z4VrXZ/4RlqHdWeSrmOwCBQld0l8HvrmP4TyGHrOreO8uZqimd/Z+OiMqnYRZzENX11Pti/Px5g1MtJcoCi9uLtF42QYrt1X/fzAyPU9C5/5ZUq4Jln3EF20bzcA52oAzZIl0jrhI0TeTeW6zYq+KxdHGshL+qG7+Ne+akPOe4Ma5BQjcMZ2dQ2kbGuozXmLT8RDcj9YRKceQsUdTI71lJpwrWKGn8Vhra0EaK3hgoTuvMYaGfOF Tompson@domain.cn
### --- 将 Tompson 的公钥复制到 gitlab 中
~~~ 使用 Tompson 用户的身份与密码登录到 gitlab界面中,然后在 ssh-key 中添加相关的key 1


六、合并分支
### --- 合并分支
~~~ Branches——>Merge request——>Submit merge request——>END

七、为 Tompson 用户配置 git
### --- 为tompson配置git
[root@server12 ~]# su - Tompson
[Tompson@server12 ~]$ git config --global user.email "yanqi_vip@yeah.net"
[Tompson@server12 ~]$ git config --global user.name "tom"
[Tompson@server12 ~]$ git clone git@10.10.10.11:Jenkins/chathall.git
drwxrwxr-x 3 Tompson Tompson 66 Mar 28 22:15 chathall
[Tompson@server12 ~]$ ll chathall/
total 8
-rw-rw-r-- 1 Tompson Tompson 1 Mar 28 22:15 a.txt
-rw-rw-r-- 1 Tompson Tompson 5 Mar 28 22:15 b.txt
### --- 创建新文件,添加内容,并提交到 master 分支
[Tompson@server12 ~]$ cd chathall/
[Tompson@server12 chathall]$ vim a.txt
#!/bin/bash
echo "gitlab test"
[Tompson@server12 chathall]$ git add a.txt
[Tompson@server12 chathall]$ git commit -m 'chucitijiao'
[Tompson@server12 chathall]$ git push -u origin master
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 331 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@10.10.10.11:Jenkins/chathall.git
2d6b585..cc9d775 master -> master
Branch master set up to track remote branch master from origin.
通过浏览器可以查看提交的内容

八、clone项目:
### --- 使用 Eric 用户登录,并 clone 项目
[root@server12 ~]# su - Eric
[Eric@server12 ~]$ ssh-keygen -C Eric@domain.cn
[Eric@server12 ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDje61B3GLJmb6YjafaWwhTgT/7XKg6daMOK9vKY1j7d3t7rJGRt9srAsnAJ5CMuoQ2eVEQBiOvwo+rDYY6Ek+Ia0jKk+tZJXvHfhoYvUCm69Nvf7ZNUGJ2tQcc+kpW4aRg/tctkbqbEsLPzDmFZi0b+nqCNgCa1n+LjJaufFwPdL4AjdXVjimwI+HDq1AqIrfw5yvqsZVedpuRTrMRSxqy8nrxZNfvpWaTjsJ8U9pwlFvdzcETScU1fJkkxmPjyeguhKN64asr5XbABJQ1seuH8SrFAi/CecKr3ZPX+thj1ebC+uPNlqra6JdOZxVPKq54LDmXcRI8b5Blb1RoPn9H Eric@domain.cn
### --- 同样需要使用Eric用户登录gitlab web 界面,并添加相应的ssh-key。
~~~ 然后设置git ,并clone项目
[Eric@qfedu.com ~]$ git config --global user.email "Eric@domain.cn"
[Eric@qfedu.com ~]$ git config --global user.name "Eric"
[Eric@server12 ~]$ git clone git@10.10.10.11:jenkins1/chathall.git
[Eric@server12 ~]$ ll chathall/
-rw-rw-r-- 1 Eric Eric 1 Mar 28 22:33 a.txt
-rw-rw-r-- 1 Eric Eric 1 Mar 28 22:33 b.txt
### --- 切换到dev分支,修改文件内容,
~~~ 并将新 code 提交到 dev分支 (Developer角色默认并没有提交master的权限)
~~~ # 创建新的分支
[Eric@server12 chathall]$ git checkout -b 'dev'
~~~ # 切换到分支
[Eric@server12 chathall]$ git checkout dev
[Eric@server12 chathall]$ ls
a.txt b.txt
[Eric@server12 chathall]$ vim eric.sh
#!/bin/bash
echo "brahch test"
[Eric@server12 chathall]$ git add .
[Eric@server12 chathall]$ git commit -m '201805101658'
[Eric@server12 chathall]$ git checkout master
Switched to branch 'master'
[Eric@server12 chathall]$ git branch
dev
* master
使用Eric 用户登录gitlab web,在界面中 创建一个合并请求

使用Tompson用户登录 gitlab web ,找到“合并请求” ,然后将dev分支合并到master分支

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv015-jenkins2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!