对gitlab多人协同开发的理解

简介

   • 多人开发同一个项目,为了充分调度多人协同开发的优势,而又不产生冲突(开发的功能冲突),所以git就在Linux之父的手中诞生了。
   • 当多人开发同一个项目,并且有一个项目管理者对这个项目做一个统一的管理(说白了就是项目管理者审核开发人员做的这一部分书写是否规范,实现的代码是否完成了整个项目需要的某一项功能),如果是符合要求的,就执行merge,将开发人员代码合并进来,如果不符合,那就退回去让开发人员拿回去重新改。

整体流程

(开发人员叫孙悟空,故分支名字在此处用孙悟空命名)

  1. 开发人员使用git clone命令,下载一个管理员建好的项目到自己的本地
  2. 开发人员在本地创建自己的分支并切换到自己的分支(git checkout -b sunwukong
  3. 开发人员在本地写代码,在自己的分支上add,commit,push(注意:push到的是自己的远程分支,所以要用git push origin sunwukong
  4. 开发人员到gitlab页面创建一个合并请求
  5. 团队的管理员收到合并请求,并查看员工提交代码并决定是否将开发人员(孙悟空等人)的代码合并到整个项目分支
具体实现细节

为了方便大家理解,所以开发人员叫孙悟空,管理人员叫唐僧
一、管理人员在gitlab上创建了一个项目
  管理人员唐僧在gitlab上创建了一个项目,并设置开发人员有相应的权限级别,分为Guest,Reporter,Developer,Maintainer等这几个角色,这几个角色的权限从低到高排列。
  在这里我们把孙悟空设置成Developer权限的开发人员,而唐僧本人是Maintainer权限的开发人员。Developer能够推送和删除没有保护的分支,Maintainer可以对没有保护和有保护的分支进行任何操作。所以孙悟空没有权限推送自己修改的代码到被保护分支上。
  如下图所示为唐僧创建项目图片,分支为master
在这里插入图片描述

  增加开发人员孙悟空为developer权限的开发人员
在这里插入图片描述

  将master分支设为保护分支
在这里插入图片描述

二、开发人员使用git clone命令,下载一个管理员建好的项目到自己的本地
  开发人员(孙悟空执行) git clone ssh://git@192.168.后面的ip,端口,项目名替换成自己的就可以了
  如下图所示:(图中最后提示的两句信息无用,可忽略,后面的图片可能也有,忽略即可)
在这里插入图片描述

  开发人员在本地创建自己的分支并切换到自己的分支,在创建自己的分支的时候别忘了先 cd 进clone下来的文件夹
  git checkout -b sunwukong

在这里插入图片描述

三、开发人员在本地写代码,在自己的分支上add,commit,push
   开发人员孙悟空创建了一个新的文件叫做孙悟空的文件.py,然后执行
  git add .
  git commit -am '孙悟空开发的新文件'
  git push origin sunwukong

  之后成功的将本地的sunwukong分支的文件推到远程sunwukong分支上,如下图为推送成功截图:
  
在这里插入图片描述

  如下图为推送成功后,从gitlab网页端看到孙悟空分支上添加了一个新的文件叫做孙悟空的文件。
在这里插入图片描述

四、开发人员到gitlab页面创建一个合并请求
  从上一张网页端gitlab文件的右上角我们看到有一个蓝色底的creat merge request,点击之后按照下图中由上往下选择title,description,assign(发送给唐僧管理员),source branch(需要合并的分支源),target branch(合并的目标分支)然后点击绿色的 submit merge request。如下图所示:
在这里插入图片描述

  之后合并请求被发送给了管理员唐僧,唐僧可以通过网页端看到有一个合并请求,如果绑定了邮箱,邮箱也会收到合并请求的邮件。
五、团队的管理员收到合并请求后,决定是否合并
  下面开始管理管理员唐僧对孙悟空提交的代码开始审核了。
   唐僧在git命令行上执行git fetch,将远程sunwukong分支刚修改完代码推上去的东西拿取下来,但是只是拿到了本地的远程仓库,并没有拿到工作区(说白了就是git fetch只会将本地库所关联的远程库的commit id更新至最新)。所以管理员唐僧在工作区是看不到修改的文件的。
  如下图所示:
在这里插入图片描述

  执行 git log master..origin/sunwukong 可以看到孙悟空的提交log(看log我们就先不放图片了)
  管理员唐僧执行 git merge origin/sunwukong 可以将孙悟空提交的审核合并到当前工作区。这样管理员唐僧就可以在编译器上看到孙悟空想要执行合并的代码。(注意此时只是合并到当前工作区,并没有push到远程master分支),如下图所示:
在这里插入图片描述

  如果唐僧对孙悟空修改的代码不满意,唐僧可以回滚代码。
  回滚到上一步的git代码:git reset --hard HEAD^
  此时本地工作区的代码将会回归到没有merge合并之前的样子
  如果唐僧对孙悟空修改的代码感觉很赞,想要将他的代码合并进自己的分支,直接使用git push 将当前工作区的代码推到远程仓库master分支即可。如下图所示:
在这里插入图片描述

  此时进入gitlab网站,可以看到合并请求显示合并成功了。

鸣谢: http://www.360doc.com/content/14/0508/17/14416931_375851686.shtml

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitHub多人协同开发是指多个程序员通过GitHub平台共同参与一个项目的开发过程。这种协同开发方式可以提高团队的工作效率和代码质量。具体来说,GitHub提供了一系列的功能和工具来实现多人协同开发: 1. 组织(organization):GitHub的组织是一个集合了多个团队和成员的实体。组织可以创建和管理多个仓库,并为不同团队分配不同的权限。 2. 团队(team):团队是组织下的一个子单位,用于将成员分组并赋予不同的权限。通过创建团队,可以更好地管理协同开发过程中的权限控制和人员分工。 3. 成员(member):成员是指参与协同开发的个人。GitHub可以通过邀请成员加入组织或特定仓库,成员可以根据自己被分配的权限对代码进行修改和提交。 4. 仓库(repository):仓库是存储代码和项目文件的地方。在一个仓库中,多个成员可以同时进行代码的编辑和提交,通过版本控制功能可以确保代码的一致性和可追溯性。 在进行GitHub多人协同开发时,通常遵循以下几个步骤: 1. 创建仓库:一个项目通常对应一个仓库,可以通过GitHub网站或命令行工具创建一个新的仓库。 2. 邀请协作者:在仓库设置中,可以邀请其他程序员加入协同开发。通过邀请协作者,可以共享代码并允许其修改和提交。 3. 分支管理:每个开发者可以创建自己的分支,在分支上独立开发和测试。通过分支管理可以避免多人同时修改同一份代码造成冲突,保证开发进度和代码质量。 4. 提交代码:开发者在自己的分支上完成开发后,可以将代码提交到主分支或请求合并。其他开发者可以对代码进行审核和评审,确保代码的质量和规范。 总结起来,GitHub提供了一套完善的工具和功能,使得多人协同开发变得更加高效和可控。通过合理的权限管理、分支管理和代码审核,可以确保团队的协同开发顺利进行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [github多人协作开发项目教程,2021新版。](https://blog.csdn.net/qq_45804132/article/details/118669698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [3. github---多人协作开发流程](https://blog.csdn.net/weixin_47505105/article/details/122893403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值