一、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
![](https://i-blog.csdnimg.cn/blog_migrate/278c60d522d3e7f14690cd75612a1050.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1fbadc206c8dc00e9dbd31f85874fdac.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e16aa670afbccce155847005da946c73.png)
三、创建项目并导入公钥
### --- 创建项目并导入公钥
~~~ # 使用 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公钥
![](https://i-blog.csdnimg.cn/blog_migrate/ca2a139aafd631bbf920dea6e40e12d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2165b985daeb87f567f70e526b083436.png)
![](https://i-blog.csdnimg.cn/blog_migrate/da791edeb95ad2e2b05ba40a14b1153a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/faf246b77a1c93897fb84408aacb6b08.png)
四、创建新分支:为项目创建 Dev分支
### --- 创建新分支
~~~ 因为版本的原因,需要先在项目里面添加一个文件,才能显示下图中创建分支的操作
~~~ Projects——>Your Projects——>Jenkins——>Chathall——>New branch
~~~ ——>Branch name:dev——>Create branch
![](https://i-blog.csdnimg.cn/blog_migrate/fb81e7916b65d69a6d32b12f035ed3e9.png)
五、在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
![](https://i-blog.csdnimg.cn/blog_migrate/b3ec8d075cd46c4226cb492f98883ea9.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0237695767bed3910a8fb657a30f4247.png)
六、合并分支
### --- 合并分支
~~~ Branches——>Merge request——>Submit merge request——>END
![](https://i-blog.csdnimg.cn/blog_migrate/06a4ff15f9ecf1c01533bf8a072075a0.png)
七、为 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.
通过浏览器可以查看提交的内容
![](https://i-blog.csdnimg.cn/blog_migrate/5ec33b5de8816558463599e1b0fdc8ed.png)
八、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,在界面中 创建一个合并请求
![](https://i-blog.csdnimg.cn/blog_migrate/dde780eecf87f868a4998b150cfbf3f3.png)
使用Tompson用户登录 gitlab web ,找到“合并请求” ,然后将dev分支合并到master分支
![](https://i-blog.csdnimg.cn/blog_migrate/a7e0f95a08f43b133bf10db118787dc2.png)