Git:利用Git进行多人协作的场景模拟

news2024/12/26 20:44:44

文章目录

  • 场景一
  • 场景二
  • 解决一些后续问题

场景一

Git是一个多人协作下完成的操作,因此Git是需要进行一些多人协作的场景的,那么这里就使用LinuxWindows两个平台进行模拟实现两个用户进行的协作

首先把仓库克隆到本地,再加入两个用户的信息,因为要进行多人协作一定是有两个Gitee的账号的

Linux下完成基本操作:

在这里插入图片描述
此时,在Gitee中也同步进行了更新:

在这里插入图片描述
那现在切换到Windows下的用户,Windows下用户也想进行这个项目的开发,那么首先要先创建分支拉取仓库中的数据

在这里插入图片描述
此时Windows用户下的仓库中就有了Linux用户下更新的内容和信息,修改信息后进行addcommit的操作,此时Gitee上就有了新的提交记录

在这里插入图片描述
那么假设此时Linux用户还在进行开发,又进行了一些修改,那么会不会因为Windows用户的提交而导致Linux用户的提交直接被覆盖?

下面用实验进行模拟

在这里插入图片描述
解决方法就是利用pull将信息拉取到本地仓库,不同的信息会以冲突的报错进行提示,手动修改后提交即可解决问题,解决后再提交到Gitee即可,而Windows用户下次使用的时候,也需要进行一次pull拉取数据,否则依旧在push的时候会报错,也需要解决访问冲突的问题

在这里插入图片描述
在这里插入图片描述
那么下面解决怎么把分支进行合并的问题

首先肯定是要进行一次pull操作,将远端仓库中的master拉取到本地中,再在本地中将master分支合并到dev分支,解决掉冲突后再合并到master分支,再push到仓库中

总结一下

当实际在开发时,如果一个分支有两个人在使用时,完成自己的代码后,首先可以尝试一下git push进行推送自己的修改,如果推送失败,就说明远程仓库进行了一定的更新,那么就首先需要进行git pull进行拉取远程仓库进行合并

如果合并有冲突,就进行解决这个冲突,之后进行提交即可

功能开发完毕后,将分支mergemaster中,最后删除分支即可

场景二

一般情况下,如果有需求需要多人同时进行开发,是不会在一个分支上进行开发的,而是一个需求点就创建一个分支,也就是说场景一的情况一般不会出现

那么下面就模拟场景二这个场景:

  • 两个人走两条分支
  • 第一个分支创建feature1文件
  • 第二个分支创建feature2文件
  • 提交到Gitee

那么首先到Linux环境下进行操作:

在这里插入图片描述

可以使用命令直接将本地分支提交到远端分支:

git push origin feature1

此时Gitee中有feature1的分支信息了

在这里插入图片描述

此时再切换回Windows用户进行使用:

在这里插入图片描述
此时Gitee中也有Windows的更新信息了

在这里插入图片描述
那么现在就有三个分支,如何对其他两个分支合并到master分支就是下一步要进行的步骤

在这里插入图片描述
如果Windows用户需要Linux用户帮忙开发,可以吗?

答案是可以的,需要设计到切换路径的问题

在这里插入图片描述
此时结束后,如果Windows用户想要继续开发,只需要把信息拉取回来再继续开发即可

在这里插入图片描述
提示未建立链接,只需要重新建立链接即可

在这里插入图片描述
改完信息后上传到Gitee上即可,此时Gitee中关于feature2的分支中就既有Linux开发也有Windows下的开发

在这里插入图片描述
合并代码这里采用的是PR申请的写法,整体比较简单,提交申请由审核人员进行审核即可

解决一些后续问题

删除远程分支后但是还能看到远程分支怎么办?

[test@VM-16-11-centos test_git]$ git branch -a
  feature1
* feature2
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/feature1
  remotes/origin/feature2
  remotes/origin/master

此时可以选择使用一个命令

git remote show origin

用以展现远程分支和本地分支之间对应的关系

[test@VM-16-11-centos test_git]$ git remote show origin
* remote origin
  Fetch URL: https://gitee.com/zhaobohan/test_git.git
  Push  URL: https://gitee.com/zhaobohan/test_git.git
  HEAD branch: master
  Remote branches:
    feature1                tracked
    feature2                tracked
    master                  tracked
    refs/remotes/origin/dev stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    feature2 merges with remote feature2
    master   merges with remote master
  Local refs configured for 'git push':
    feature1 pushes to feature1 (up to date)
    feature2 pushes to feature2 (local out of date)
    master   pushes to master   (up to date)

再根据推荐直接删除即可

[test@VM-16-11-centos test_git]$ git remote prune origin
Pruning origin
URL: https://gitee.com/zhaobohan/test_git.git
 * [pruned] origin/dev

这样就完成了两个多人协作的场景模拟,下一篇进行一个项目的模拟开发流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件设计模式系列之十——组合模式

1 模式的定义 组合模式是一种结构型设计模式,用于将对象组合成树形结构以表示部分-整体层次结构。这个模式允许客户端以一致的方式处理单个对象和对象组合,因此它将单个对象和组合对象视为可互换的。 组合模式允许你将对象组合成树状结构来表示"部…

AI写作宝-为什么要使用写作宝

写作一直是一项需要创造力和思考的任务,人工智能(AI)正逐渐成为我们写作过程中的一位新伙伴。AI写作宝等在线AI写作工具正日益普及,为我们提供了更多的写作选择和可能性。 AI写作宝:什么是它们,以及它们能做…

国庆节都有哪些营销方案?

这里分享一些撰写国庆节营销方案的方法论,同时分享一些常见的国庆节营销方式。 1、确定活动时间: 一般来讲,国庆活动的最好时间是9月29日-10月7日,前期需要留有预热宣传的时间,告知用户活动的主题以及福利政策 2、确…

媒体发稿的步骤与技巧:打造品牌曝光与声誉

媒体发稿是企业、组织和个人获取曝光和传播信息的重要途径之一。通过媒体发稿,可以向目标受众传递重要的信息、推广产品或服务、塑造品牌形象等。然而,对于许多人来说,媒体发稿的流程和步骤可能会感到复杂和困惑。本文将为您介绍媒体发稿的基…

怒刷LeetCode的第7天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:二分贪心 方法二:二分DP 第二题 题目来源 题目内容 解决方法 方法一:双指针 方法二:暴力搜索 方法三:排序 第三题 题目来源 题目内容 解决方法 方法一…

【算法】单调栈

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

“高级Java注解的简介及应用“

目录 引言1. Java注解简介1.1 什么是注解1.2 注解的作用1.3 常见的Java注解 2. 自定义注解案例3. AOP自定义注解的应用3.1 AOP简介3.2 AOP自定义注解 总结 引言 在Java开发中,注解是一种非常重要的语言特性,它们可以为代码提供额外的信息和元数据。本文…

MFC 绘图

效果图:三张bmp图 字 竖线 组成 在OnPaint()函数中 CPaintDC dc(this);CRect rect;GetClientRect(&rect); //获取客户区矩形CDC dcBmp; //定义并创建一个内存设备环境dcBmp.CreateCompatibleDC(&dc); //创建兼容性DCCBitmap …

如何把利用paddlepaddle导出的json文件转化为yolo或者voc文件

目录 1. 修改源码,让模型能够生成出对于单个图像的标注。 2. 把数据转为yolo格式 3.把yolo格式转化为xml格式 这两天想偷懒,想让模型先在数据上标一遍,然后我再做修正,主要是图个省事。由于我们主要是利用paddle,模型也是基于p…

python+django学习资料在线分享系统vue

本站是一个B/S模式系统,采用vue框架作为开发技术,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得校园资料分享平台管理工作系统化、规范化。技术栈 后端:pyth…

同城信息服务源码 本地生活服务小程序源码

同城信息服务源码 本地生活服务小程序源码 功能介绍: 基本设置:网站参数、安全设置、分站管理、支付设置、操作日志、地区设置、公交地铁、国际区号、清理缓存、模板风格、模块管理、域名管理、底部菜单、消息通知、登录设置 其他设置:关键…

Linux内核源码分析 (B.7)深入理解 slab cache 内存分配全链路实现

Linux内核源码分析 (B.7)深入理解 slab cache 内存分配全链路实现 文章目录 Linux内核源码分析 (B.7)深入理解 slab cache 内存分配全链路实现1\. slab cache 如何分配内存2\. slab cache 的快速分配路径3\. slab cache 的慢速分配路径3.1 从本地 cpu 缓存 partial 列表中分配3…

小程序多种姿势更换文章

概述 简单的文章切换demo,通过倒计时、摇一摇、双击进行文章切换 详细 直接看效果图吧!比较简单,主要是练习一下... 小程序不带双击事件,可以记录第一次单击事件和第二次单机事件进行双击操作。 1、摇一摇是通过调用官方的 …

将多个元素循环起来构成迭代器itertools.cycle()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将多个元素循环起来 构成迭代器 itertools.cycle() 选择题 以下说法错误的是? import itertools a[1,2,3] print("【显示】a:");print(a) bitertools.cycle(a) print("【执行】…

MVC设计思想理解和ASP.NET MVC理解

三层模式 三层模式包括:UI层,业务逻辑层,数据访问层,模型层 MVC设计思想和ASP.NET MVC理解 MVC设计思想: MVC的思想就是把我们的程序分为三个核心的模块,这三个模块的详细介绍如下: 模型(Model) :负责封装与引用程序的业务逻辑相关的数据以及对数据的处理方法。模型层有对…

Redis 列表操作实战(全)

目录 LINDEX 获取指定下标元素 LSET 指定下标添加元素 LPUSH 将元素插入列表头 LPUSHX RPUSH 将元素插入列表尾 RPUSHX LINSERT 将元素插入列表某位置之前 LLEN 列表长度 LPOP 取列表头元素 RPOP 取列表尾元素 BLPOP 阻塞式取列表头元素 BRPOP 阻塞式取列表尾元素…

精品Python医院挂号信息管理系统

《[含文档PPT源码等]精品基于Python实现的医院挂号信息管理系统》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程等 软件开发环境及开发工具: 开发语言:python 使用框架:Django 前端技术:JavaScript、…

智能指针解读(2)

前面一篇文章,我讲解了智能指针的原理,并实现了一个简单的智能指针。为了加深对智能指针的理解,在这篇文章中,我把C中的几个智能指针讲解下:auto_ptr, unique_ptr, shared_ptr, weak_ptr。 1、auto_ptr 前面的文章我…

在服务器上创建git仓库

1、在服务器上创建git仓库 选择一个创建文件夹的地方,这个地方不会将源码存放在这里,只用于版本控制 # 创建一个专门放置git的文件夹,也可以叫其它名 mkdir git && cd git # 创建自己项目的文件夹,文件夹后面要带 .git…

电工三级证(高级)实战项目:信号交通灯的PLC控制

实训目的 掌握比较指令掌握时钟指令掌握时间同步的方法 控制要求 PLC设备:Siemens S7-200 要求:按下起动按钮SB1后,东西方向绿灯亮20s,之后再闪烁绿灯3s,之后黄灯亮3s,最后红灯亮26s;同时,南北方向红灯亮…