当前位置:首页 > 技术分析 > 正文内容

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

ruisui884个月前 (01-08)技术分析25

前言

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

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

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

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



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

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

从上述的图,我们可以分为两个部分:一个是管理员(项目负责人),另一个是开发人员。

?管理员(项目负责人):负责创建仓库和合并代码,当然他也可以作为开发人员。

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

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


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

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


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



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

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

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

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

第三步:刷新Gitlab网页:

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


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

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

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


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

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

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

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

方法一:


方法二:

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

指令为:

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

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

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

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

8.没有发现有改动(远程仓库项目是最初提交的版本) → → →对应图1.1.1中的⑧。

检查 git log无误,将分支推送至origin(远程仓库),指令为:

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

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

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

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

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

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

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

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/105.html

分享给朋友:

“Git分布式系统---Gitlab多人工作流程” 的相关文章

身体越柔软越好?刻苦拉伸可能反而不健康 | 果断练

坐下伸直膝盖,双手用力向前伸,再用力……比昨天前进了一厘米,又进步了! 这么努力地拉伸,每个人都有自己的目标,也许是身体健康、线条柔美、放松肌肉、体测满分,也可能为了随时劈个叉,享受一片惊呼。 不过,身体柔软,可以享受到灵活的福利,也可能付出不稳定的代价,并不是越刻苦拉伸越好。太硬或者太软,都不安全...

7 招教你轻松搭建以图搜图系统

作者 | 小龙责编 | 胡巍巍当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在...

Acustica Audio 发布模拟Roland Jupiter 双声道合成器插件 TH2

福利: Acustica Audio 发布模拟Roland Jupiter 风格的双声道合成器插件 TH2 免费下载 意大利 Acustica Audio 公司发布布模拟Roland Jupiter 风格的双声道合成器插件 TH2 ,灵感来源于Acustica Audio的THING-8系列,它是...

虚幻引擎5.5现已发布 手游开发、动画制作重大改进

Epic在今天发布了虚幻引擎5.5,现可通过Epic Launcher下载。此版本在动画创作、渲染、虚拟制片、移动端游戏开发和开发人员迭代工具集等方面做出了重大改进。 官方博客:虚幻引擎5.5现已发布,在动画创作、虚拟制作和移动游戏开发方面取得了显著进步,渲染、摄像机内视觉特效和开发人员迭代等领域的...

js中数组filter方法的使用和实现

定义filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。语法var newArray = arr.filter(callback(element[, index[, selfArr]])[, thisArg])参数callback循环数组每个元素时调用的回调函数。回调函...

一起学Vue:路由(vue-router)

前言学习vue-router就要先了解路由是什么?前端路由的实现原理?vue-router如何使用?等等这些问题,就是本篇要探讨的主要问题。vue-router是什么路由是什么?大概有两种说法:从路由的用途上来解释路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同。从路由的实现原理上来解释路...