欢迎来到天天文库
浏览记录
ID:14158488
大小:5.77 MB
页数:14页
时间:2018-07-26
《gitlab多人协同工作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、gitlab多人协同工作2013-05-1123:02:40
2、gitlab多人协同工作gitlab----新颖的git服务器托管网站,开源免费。你可以在自己的公司或者开发团队搭建好一个。gitlab的工作流程是gitlabhelp中建议的工作流程是这样。如下图。1(1).开发成员拷贝管理员建立好的项目到自己本地。(2).创建自己的分支。(3).在自己的分支上写代码,并提交。(4).推送到远程服务器,分支是自己的分支。(分支的命名规则使用小驼峰式命名法。比如我是员工孙悟空,我就推送到孙悟空分支。分支的命名规则为开发人员姓名+所开发的功能。命名中不要使用特殊字符,不
3、要使用点。例如孙悟空开发的分支,命名为swkFeature1)(5).在Commit页面上浏览分支。(6).创建一个合并请求。(7).团队的管理员或者领导者审查并且决定是否合并员工提交的分支到主分支上。管理员在建好的项目中加入开发人员。开发人员有相应的权限级别,分为Guest,Reporter,Developer,Master,等这几个角色,这几个角色的权限从低到高排列。Developer能够推送和删除没有保护的分支,Master可以对没有保护和有保护的分支进行操作。如图1所示。如下图2我们使用下面这个图示中的分支模型进行工作。Git的开发者都喜欢以这种方式来开
4、展工作,在master分支中保留完全稳定的代码,即已经发布或即将发布的代码。与此同时,他们还有一个名为develop专门用于后续的开发,或仅用于稳定性测试。当然并不是说一定要绝对稳定,不过一旦进入某种稳定状态,便可以把它合并到master里。还有在工作中,把开发任务分解为各个功能或者模块,用topic(topicbranch主题分支,有又成为featurebranch特性分支),实现之后并测试稳定之后,可以合并到其他分支。Git的开发者都喜欢以这种方式来开展工作,在master分支中保留完全稳定的代码,即已经发布或即将发布的代码。与此同时,他们还有一个名为dev
5、elop分支专门用于后续的开发,或仅用于稳定性测试。当然并不是说一定要绝对稳定,不过一旦进入某种稳定状态,便可以把它合并到master里。还有在工作中,把开发任务分解为各个功能或者模块,用topic分支(topicbranch主题分支,有又称为featurebranch特性分支),比如实现功能1,在develop分支的基础上产生分支feature1,实现功能2,有分支feature2。feature1和feature2实现了要求的功能之后,合并到develop分支上去。develop分支测试稳定之后,可以合并到master分支上去。07-gitlab工作流程4情
6、景(以下的模拟场景没有把develop分支考虑进去,直接在master分支上分解功能分支。)1.管理员唐僧建好了一个项目,把孙悟空加入,并授予Developer角色权限,唐僧本身就是比孙悟空高一级的Master角色。唐僧在自己的电脑上设定好了master分支为受保护分支。32.员工孙悟空在自己电脑上工作,并推送已经写好的代码到远程服务器的孙悟空分支上,即swkFeature1上孙悟空做了如下操作gitclonegit@mygitlabold.sytes.net:root/testc01.git//从管理员唐僧那里克隆项目cdtestc01//进入项目工作gitc
7、heckout-bswkFeature1//创建自己的分支,并切换到此分支上,分支的命名规则为开发人员名字+所开发的功能名字。本例中命名为swkfeature1vimaa.html//写了一个名为aa的html文件gitaddaa.html//加入跟踪ggitcommit-am"swkFeature1isready"//提交gitpushoriginswkFeature1//推送到远程服务器孙悟空分支上,git提示推送成功gitpushoriginswkFeature1:master//孙悟空想尝试直接推送到受保护的分支上,孙悟空是没有这个权限的,git会提示为
8、推送失败图为孙悟空键入的命令孙悟空在Commit页面上浏览分支swkFeature1,然后向项目领导唐僧创建一个合并请求。3.这个合并请求除了唐僧可以登录gitlab上看到之外,还可以通过邮件方式看到。唐僧即使没有登录gitlab,只要他的邮箱支持手机邮箱等方式,手机邮箱可以通过短信的方式通知唐僧,唐僧可以实时看到合并要求。管理员唐僧对要求合并的分支代码进行审核。管理员唐僧从服务器上获取孙悟空提交的分支。gitfetch然后孙悟空推送的远程新分支被管理员唐僧拉拽到本地,但是不是以本地分支存在,而是保存在.git/refs/heads之外(.git/refs/re
9、motes/origin
此文档下载收益归作者所有