搜索
bottom↓
回复: 1

Git分布式系统---Gitlab多人工作流程

[复制链接]

出0入234汤圆

发表于 2022-1-14 17:23:54 | 显示全部楼层 |阅读模式
本帖最后由 正点原子 于 2022-1-14 17:23 编辑

以下文章来源于:公众号:开源电子网,读取更多技术文章,请扫码关注


讨论发帖图.png




Git分布式系统---Gitlab多人工作流程

前言

       在上一次推文中,我们已经很清楚的讲解了如何创建本地仓库、提交(push)项目到远程仓库以及从远程仓库clone(克隆)项目到本地的相关操作。大家可以先去看前面的推文

(快速掌握Git分布式系统操作)点击查看

       目前无论你是否步入社会还是在校学生,都会使用Gitlab来进行团队的代码管理。(可以这样说:学习嵌入式的,步入社会,公司会强制要求使用Git或者suv来管理代码)Gitlab是一个基于 git实现的在线代码仓库软件,一般用于在企业、学校等内部网络搭建一个类似Github 的网站。在这上面进行多人协作开发。

       其实学会了Gitlab,那么其他的在线代码仓库软件都是类似的操作,例如Gitee(国内)、Github(国外)。首先我们看一下Gitlab多人工作流程到底是怎么操作的,如以下图1.1.1所示:

          2.jpg
                     图1.1.1Gitlab多人工程流程

       看了上述的图,是不是有点懵逼状态,其实也不难,小编就分步讲解这些流程怎么得来的。

       在线远程仓库有什么用,这里我们就不必再去讲解了,大家可以前看上一次的推文,已经很详细去讲解了(快速掌握Git分布式系统操作)。

       从上述的图,我们可以分为两个部分:一个是管理员(项目负责人),另一个是开发人员。
      ㆍ管理员(项目负责人):负责创建仓库和合并代码,当然他也可以作为开发人员。


      ㆍ开发人员:根据实现某个功能编写相应的代码。

       注意:无论是管理员以及开发人员必须在在线远程仓库注册账号。


    管理员必须掌握的操作流程

             (不是管理员,了解即可)

      首先打开Gitlab网址:https://about.gitlab.com/,(自行注册)

   3.jpg


      1. 创建仓库→ → →对应图1.1.1中的①。

                            4.jpg

        第一步:填写相关仓库的信息:

       5.jpg

       所以我们得到SSH和HTTPS地址:


       6.png

       第二步:把项目推送到刚刚建立的远程仓库当中:


       6.jpg


         7.jpg
      注意:必须在有隐藏文件(.git)的根目录下右键打开GitBash Here

      第三步:刷新Gitlab网页:

       8.jpg

      第四步:添加并设置开发人员的权限:


       9.jpg

      10.jpg



      开发人员必须掌握的操作流程

        2. 将项目 fork 到自己的空间(fork 到自己空间的仓库可以随意修改,除非向项目主仓库提交 MR 并合并,不然不会影响主仓库)→ → →对应图1.1.1中的②。


         11.jpg

        我们就得到了自己项目的SHH/HTTPS,我们使用SHH/HTTPS克隆(clone)本地即可。

        3. 在我们电脑本地创建一个文件夹,我们把项目克隆(clone)到本地当中→ → →对应图1.1.1中的③。

        使用git cloneSSH/HTTPS命令把项目克隆(clone)到本地当中

         12.jpg

        4. 创建分支(作为开发人员,最好不要在master修改,最好使用分支修改)→ → →对应图1.1.1中的④。

        创建分支指令:(自行创建,我们前面的推文已经说到快速掌握Git分布式系统操作)

        方法一:
         13.jpg

       方法二:
         14.jpg

       5. (我已经实现了功能,想合并)开发自测结束后,将修改提交至本地仓库
→ → →对应图1.1.1中的⑤。

       指令为:
       15.jpg

       6. 检查上游版本是否有改动,因为我们并不是一个人开发,而是多个人开发,如果在我们之前另外一个开发人员B提交并且与MR 并合并,那么我们的项目并不是最新的,这个能理解吧,所以我们必须检测上游版本和目前自己开发的版本是否一致。→ → →对应图1.1.1中的⑥。


          16.jpg

        (add upstream是添加上游地址,即主仓库地址,使用--rebase 便不会产生merge commit)

            17.jpg

         Current branch dev is up to date(当前的分支开发是最新的)

         7. 发现有改动(远程仓库项目已经不是最初提交的版本),需要自己手动解决冲突。→ → →对应图1.1.1中的⑦。

          18.jpg


          注释:gitrebase用于把一个分支的修改合并到当前分支

          8. 没有发现有改动(远程仓库项目是最初提交的版本) → → →对应图1.1.1中的⑧。
          检查 git log无误,将分支推送至origin(远程仓库),指令为:


          19.jpg


             20.jpg

          9. Gitlab 上向主仓库发起 Merge Request(MR),请MR进行 审核:

          21.jpg

          10. (管理员专属操作)若MR 没有提出修改意见,则进入「⑩对应图1.1.1中的⑩」,→ → →对应图1.1.1中的⑨


          MR 被通过后,在 Gitlab上点击merge,代码会被合并到主仓库。此时可删除本地分支了,命令为:

          22.jpg

         11. 若MR 提出修改意见 → → →对应图1.1.1中的⑩。

          按照修改意见修改后,执行命令:


          23.jpg

          注释:使用--amend 将这次commit 与上次commit 合并,只保留一条commit记录,push的时候使用 -f是因为修改了分支,需要强制合并。

          12. 更新本地代码和 origin 代码为最新,命令为:


          24.jpg


阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入169汤圆

发表于 2022-1-14 20:10:03 | 显示全部楼层
gitlab对机器配置要求比较高,没有4G以上内存就不要考虑了。

小团队可以考虑轻量些的 gogs gittea 等,我是用docker跑了个gogs,1分钟开起来,内存只占用几十兆.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 08:51

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表