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

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

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

前言

在上一次推文中,我们已经很清楚的讲解了如何创建本地仓库、提交(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多人工作流程” 的相关文章

软件测试-性能测试专题方法与经验总结

本文 从 性能测试流程,性能测试指标,性能监测工具,性能测试工具,性能测试基线,性能测试策略,性能瓶颈分析方法几个维度,进行知识总结和经验分享;详细见下图总结,欢迎大家补充;性能测试经验与思考1. 性能测试流程1.1. 性格规格评审1.2. 资源排期1.2.1. 人力资源1.2.2. 时间计划· 性...

编码 10000 个小时后,开发者悟了:“不要急于发布!”

【CSDN 编者按】在软件开发的道路上,时间是最好的老师。根据“一万小时定律”,要成为某个领域的专家,通常需要大约一万小时的刻意练习。本文作者身为一名程序员,也经历了一万小时的编程,最终悟出了一个道理:慢即是快,重视架构设计和代码质量,确保每一行代码都经得起时间的考验。作者 | Sotiris Ko...

「云原生」Containerd ctr,crictl 和 nerdctl 命令介绍与实战操作

一、概述作为接替Docker运行时的Containerd在早在Kubernetes1.7时就能直接与Kubelet集成使用,只是大部分时候我们因熟悉Docker,在部署集群时采用了默认的dockershim。在V1.24起的版本的kubelet就彻底移除了dockershim,改为默认使用Conta...

三维家-系统快捷键使用

快键件使用:通过简单的键盘+鼠标操作,快速完成搭配。1.基础快捷键1) Ctrl+V:复制选中对象第一步:鼠标左击物体,按下Ctrl+V 即可复制选中对象。2) Ctrl+G:组合多选对象第一步:按住Ctrl键多选对象--按住Ctrl+G--确定。3) Ctrl+B:解组选中对象第一步:左击选中对象...

最快清除数组空值?分享 1 段优质 JS 代码片段!

本内容首发于工粽号:程序员大澈,每日分享一段优质代码片段,欢迎关注和投稿!大家好,我是大澈!本文约 600+ 字,整篇阅读约需 1 分钟。今天分享一段优质 JS 代码片段,用最简洁的代码清除了数组中的空值。老规矩,先阅读代码片段并思考,再看代码解析再思考,最后评论区留下你的见解!const arr...

前端路由简介以及vue-router实现原理

作者:muwoo 来源:https://zhuanlan.zhihu.com/p/37730038后端路由简介路由这个概念最先是后端出现的。在以前用模板引擎开发页面时,经常会看到这样http://www.xxx.com/login 大致流程可以看成这样:浏览器发出请求服务器监听到80 端口(或443...