版本管理之gitlab实践教程 基础篇 5

Posted firsttry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了版本管理之gitlab实践教程 基础篇 5相关的知识,希望对你有一定的参考价值。

技术分享图片
有使用github经验的一定非常熟悉pull request,而关于pull request的理解常常让很多人不解.而在gitlab中被称为了merge request,在字面上理解起来似乎更加轻松.这篇文章通过一个简单的例子来演示一下如何使用merge request.

pull request VS merge request

pull request在开源项目中极其常见,被简称为PR。素未谋面的一群人在一起一起开发一个项目,你看到某个项目很好Fork下来,添加了一个功能发了个PR给Owner,Owner评审完之后觉得很OK,就Merge到他的项目中。
至于pull reqeust的理解,如果理解为这是一个要执行者去pull的request,则基本上和其真正的意思相差甚远。但是如果理解为,这是一个request,目的是让Owner去pull然后去合并则会较为接近其使用方法。而在gitlab中则直接叫作merge request,
就是要求Owner进行合并而发出的一个提示,Owner确认完之后Accept便可合并进取,尤其是新手理解起来可能会更加容易。

事前准备

只有一个Master分支的仓库,project名为demoprj,里面只有一个README.md文件

[root@ku8-1 demoprj]# git branch
* master
[root@ku8-1 demoprj]# ls
README.md
[root@ku8-1 demoprj]# cat README.md 
Hello, Liu Miao[root@ku8-1 demoprj]# 
[root@ku8-1 demoprj]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

创建一个hellowrld分支

[root@ku8-1 demoprj]# git checkout -b fea-helloworld
Switched to a new branch ‘fea-helloworld‘
[root@ku8-1 demoprj]# git branch
* fea-helloworld
  master
[root@ku8-1 demoprj]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

给新创建的分支添加一个文件并push

[root@ku8-1 demoprj]# echo "Hello, World" >HelloWorld
[root@ku8-1 demoprj]# git add HelloWorld 
[root@ku8-1 demoprj]# git commit -m "Init HelloWorld file with Hello, World"
[fea-helloworld fe9111a] Init HelloWorld file with Hello, World
 1 file changed, 1 insertion(+)
 create mode 100644 HelloWorld
[root@ku8-1 demoprj]# git push origin fea-helloworld
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 305 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: 
remote: Create merge request for fea-helloworld:
remote:   http://23467013e0a9/root/demoprj/merge_requests/new?merge_request%5Bsource_branch%5D=fea-helloworld
remote: 
To git@172.17.0.2:root/demoprj.git
 * [new branch]      fea-helloworld -> fea-helloworld
[root@ku8-1 demoprj]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

结果确认

可以看到刚刚创建的helloworld分支fea-helloworld
技术分享图片

创建Merge Request

确认的分支上的Create Merge Request提供了一个快捷的合并通道,点击便可以创建一个Merge Request。
技术分享图片
这个即将创建的Merge Request是From fea-helloworld into master的信息,前面说过这是一个快捷通道,可以看到Title和Source Branch以及Target Branch等均已设定,设定一下Assignee就可以直接Submit。

Accept Merge Request

因为此文演示的demoprj中只有一个owner用户,未曾创建其他用户,请求和接受相当于左手交道右手,根本不用切换用户。可以看到merge request的tab显示为1,同时此页面有个Accept Merge Request按钮,点击即接受此合并请求了。
技术分享图片

接受确认

可以清晰地看到提示已经被Merged了,同时merge request的tab显示也变成了0,表明没有确认中的Merge Request了。
技术分享图片

结果确认

上面说过这其实就是一个合并请求和合并接受的过程,在helloworld分支中创建了一个HelloWorld文件,是否合并到了master呢,经过确认发现确实已经合并,这样一个PR的流程就走完了。
技术分享图片

总结

这篇文章使用了一个非常简单的例子对gitlab的Merge Request的使用方法进行了说明,但是在实际的使用中,更多的时候合并相当的复杂,需要对内容进行认真的审查,而如何通过流程减少不必要的手工合并一直是开发中一个重要的课题。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow










以上是关于版本管理之gitlab实践教程 基础篇 5的主要内容,如果未能解决你的问题,请参考以下文章

版本管理之gitlab实践教程 基础篇 3

CentOS 7.6 搭建Gitlab教程

持续集成之Gitlab安装与应用

持续集成之Gitlab安装与应用

centos 7部署并汉化Gitlab及基础操作

GitLab安装与汉化-实战