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

news/2025/2/16 2:22:32/

文章目录

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

场景一

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 -afeature1
* feature2masterremotes/origin/HEAD -> origin/masterremotes/origin/devremotes/origin/feature1remotes/origin/feature2remotes/origin/master

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

git remote show origin

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

[test@VM-16-11-centos test_git]$ git remote show origin
* remote originFetch URL: https://gitee.com/zhaobohan/test_git.gitPush  URL: https://gitee.com/zhaobohan/test_git.gitHEAD branch: masterRemote branches:feature1                trackedfeature2                trackedmaster                  trackedrefs/remotes/origin/dev stale (use 'git remote prune' to remove)Local branches configured for 'git pull':feature2 merges with remote feature2master   merges with remote masterLocal 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.ppmy.cn/news/1116984.html

相关文章

HTML常用基本元素总结

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title> biao qian</title> </head> <body><h1>这是标题1</h1> <h2>这是标题2</h2> <h3>这是标题3</h3><p> 这…

4G工业路由器高效数据传输助力光伏发电站管理

光伏发电站是能源产业中一种利用太阳能技术将光转化为电能的常见设施。随着物联网技术与环保能源的不断进步和应用的普及&#xff0c;光伏发电站的管理也变得更加便捷高效。 光伏发电站结合4G工业路由器实现远程监控管理&#xff0c;并用于采集发电站中的传感器数据和监控信息…

网络爬虫-----爬虫的分类及原理

目录 爬虫的分类 1.通用网络爬虫&#xff1a;搜索引擎的爬虫 2.聚焦网络爬虫&#xff1a;针对特定网页的爬虫 3.增量式网络爬虫 4.深层网络爬虫 通用爬虫与聚焦爬虫的原理 通用爬虫&#xff1a; 聚焦爬虫&#xff1a; 爬虫的分类 网络爬虫按照系统结构和实现技术&#…

Spring-boot 操作失败,签名验证失败:X-TIMESTAMP已过期

Slf4j public class SignAuthInterceptor implements HandlerInterceptor {/*** 5分钟有效期*/private final static long MAX_EXPIRE 5 * 60;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception…

数学建模| 优化入门+多目标规划

优化入门多目标规划 优化入门知识什么是优化问题如何判断是不是优化问题优化模型建模求解器优化问题的分类 多目标规划 优化入门知识 什么是优化问题 优化问题&#xff1a;求最优&#xff0c;例如获利最大、最少损失、最短路径、最小化风险等等。 例如&#xff1a;之前文章提…

数据库顶会 VLDB 2023 论文解读 - Krypton: 字节跳动实时服务分析 SQL 引擎设计

“Krypton 源于 DC 宇宙中的氪星&#xff0c;它是超人的故乡&#xff0c;以氪元素命名”。 引言 近些年&#xff0c; 在复杂的分析需求之外&#xff0c;字节内部的业务对于实时数据的在线服务能力也提出了更高的要求。大部分业务不得不采用多套系统来应对不同的 Workload&…

计算机视觉:从图像识别到深度学习

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 计算机视觉是人工智能领…

深度分析Oracle中的NULL

【squids.cn】 全网zui低价RDS&#xff0c;免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 关键点 特殊值NULL意味着没有数据&#xff0c;它声明了该值是未知的事实。默认情况下&#xff0c;任何类型的列和变量都可以取这个值&#xff0c;除非它们有一个NOT N…