当前位置: 首页 > news >正文

Git企业开发--多人协作

文章目录

  • 多人协作
    • 情景一:相同分支上进行操作
    • 情景二:不同分支上进行操作

很高兴和大家见面,给生活加点impetus!!开启今天的编程之路
在这里插入图片描述
作者:٩( ‘ω’ )و260
我的专栏:Linux,C++进阶,C++初阶,数据结构初阶,题海探骊,c语言
欢迎点赞,关注!!

多人协作

情景一:相同分支上进行操作

目的:远程仓库的代码文件要求增加"add"和"bbb"代码,分别由不同的开发人员完成,而且是在同一分支上操作。
因为两个开发人员需要使用不同的服务器,演示就利用windows和linux的shell命令行来演示两个开发人员。

经过前面的学习,需要对一些指令进行补充:

git checkout -b 本地新的分支名 远程分支名:该指令用于本地创建分支时与远程分支进行连接,为什么需要链接?前面我们提到push,pull操作是分支与分支之间的操作。
git branch --set-upstream-to=远程分支名 本地分支名:该指令与上个指令作用相同,都是建立连接,该指令用于已存在的本地分支名与远程分支名建立连接。
git branch -vv:查看本地分支与远程分支的连接状态
git branch -r:打印远程分支
git branch -a:打印本地仓库分支 + 远程仓库分支。
git fetch:拉取远程仓库分支信息

当本地分支a和远程分支a建立连接之后,在本地分支a下就可以直接使用git push 和 git pull,因为建立了链接状态,所以push或pull时知道源和目标在哪里。

windows用户准备工作:
在这里插入图片描述
我们在windows终端重新再来克隆一份,此时有了一个本地仓库。与远程仓库内容相同。
我们重新给我们的仓库添加用户(新建一个小号,同时在windows终端配置用户名和邮箱即可)。
在这里插入图片描述

接下来对该情景进行演示:
首先先创建分支dev1,在新的dev分支进行开发,开发完毕,推送到远端。
在这里插入图片描述
思考:为什么这两次git status的结果不同?
区别在与该dev1分支是否已经与远程仓库连接,当连接之后,才会显示本地仓库分支与远程仓库连接分支的状态,因为push是按照分支与分支关系进行,没有push,git不知道是与那个分支比较。

我们将内容提交上去,在另一个分支中,我们能够看到结果:
在这里插入图片描述
随后再来windows终端进行操作:
因为此时远程仓库更新,所以需要pull拉一下。
在这里插入图片描述
当建立连接之后,git知道是拉取远端dev1分支拉取到本地dev分支,我们直接在文件里修改,随后上传到dev1分支中。
在这里插入图片描述
完成文件修改之后,再来push
在这里插入图片描述
因为该分支已经和远端dev1分支建立连接,直接写git push的话git也知道从哪里push到哪里。

随后我们再来对master分支进行合并。合并其实有两种方案:
第一种方案:在gitee上进行合并,使用pull Request->推荐,因为该种方式需要经过测试人员审核,项目经理或老板审批之后才能够合并,更安全
第二种方案:在本地进行合并然后推送到远端。该方案就是直接合并了。
我们使用第二种方案,加深对指令的印象。
在这里插入图片描述
当我们再来查看master主分支的内容时,就会发现有了file.txt文件,同时还包含两行代码:
在这里插入图片描述

这里我想提问一个问题,如果说,当远端仓库比我们仓库更新的时候,不pull,直接写新的代码然后直接push,会发生什么?
在这里插入图片描述
先在windows终端修改file.txt文件,并且使得远端仓库修改,当shell终端不pull直接git push时
在这里插入图片描述
直接报错当前版本提交落后于远端提交,会造成合并冲突,因为在相同文件,相同分支相同位置的不同代码,肯定造成合并冲突。
因为pull = 拉取 + 合并。
在这里插入图片描述
手动解决冲突后,再来commit手动提交。
在这里插入图片描述

当开发完成后,将没用的分支再来删除掉。直接在gitee码云上对应仓库删除即可。
在这里插入图片描述
直接在该位置删除即可。

情景二:不同分支上进行操作

为了解决情景一遗留的问题,情景二要求在不同分支上进行操作。
目标:远程仓库分支新增function1文件和function2文件,分别完成两个功能,分别由两个开发者完成,且在不同分支下完成,即一个功能一个分支。

准备工作:肯定需要创建两个分支,有两种解决方案:
解决方案一:在gitee直接建立分支->推荐
解决方案二:在本地创建分支并推送至远端
为什么推荐一方案,因为一方案一定是基于最稳定的master主分支创建的分支,方案二要想达到,需要先pull拉取。

我们使用方案二来验证,同样的,再来熟悉一下指令:
先在远端创建好function1分支和function2分支。再来xshell端进行操作
在这里插入图片描述
此时本地function1分支与远端function1分支并没有建立连接,而且,本地还没有远端的分支信息(因为这个分支我是在远端创建的)。直接使用git pull指令拉取一下即可。
为什么要使用git pull指令拉取呢?
pull = 拉取 + 合并,如果拉取分支内容(即分支上的提交),需要进行分支与分支之间的连接,如果只是拉取仓库内容(即分支),不需要建立连接。
在这里插入图片描述
设置连接状态 + push,同时在远端查看代码
在这里插入图片描述
接下来在windows终端操作。
在这里插入图片描述
如果说我们的同时无法编辑剩余的代码,我们需要帮助他完成剩余内容的开发,此时又会演变成相同不同开发人员对相同分支的一个代码文件进行操作,和情景一相同,这里不在演示了。

接下来我们来进行合并操作。
我们将function1分支使用pull Request来进行合并,function2分支来进行本地合并并推送。
在这里插入图片描述
来看码云结果:
在这里插入图片描述
再来合并function2。
在这里插入图片描述
然后我们再将function2分支合并到master主分支上。
在这里插入图片描述
这样就完成情景二的操作了。

http://www.dtcms.com/a/390404.html

相关文章:

  • 【论文阅读 | IF 2025 | IF-USOD:用于水下显著目标检测的多模态信息融合交互式特征增强架构】
  • 【14/20】安全强化:HTTPS 和率限制在 Express 中的应用,实现防护机制
  • C#调用钉钉API实现安全企业内部通知推送
  • MyBatis与MyBatis-Plus区别
  • 数据血缘探秘:用SQL串联不同数据源的脉络
  • 多线程程序性能优化:缓存命中率与伪共享深度剖析
  • Spring Boot支持哪些类型的自定义配置文件?
  • uniapp:scss变量使用方法
  • postman接口测试系列: 时间戳和加密
  • 模型蒸馏demo
  • 【JVM】Java中有哪些垃圾回收算法?
  • 为何楼宇自控系统日益受欢迎?解析其兴起的核心动因
  • ASP.NET Core RazorPages/MVC/Blazor/Razor/WebApi概念记录说明
  • .NET Core 中 RabbitMQ 和 MassTransit 的使用
  • 使用QT进行3D开发建模
  • 阿里云开源DeepResearch:轻量化AI推理框架技术解析与实践指南
  • Visual Studio 2026 Insiders 重磅发布:AI 深度集成、性能飞跃、全新设计
  • 大模型初识(基础模型 业务集成+智能体Agent+Prompt提示词优化)
  • 【4/20】Node.js 入门:设置后端服务器,实现一个简单 API 端点
  • Kafka事务:构建可靠的分布式消息处理系统
  • 补环境-JS原型链检测:在Node.js中完美模拟浏览器原型环境
  • TCP端口号的作用
  • 笔记本电脑维修指南(芯片级)
  • Burpsuite进行暴力破解
  • 虚拟现实CAVE系统中的光学跟踪技术,1:1呈现CAD模型沉浸式交互
  • 2025拍照手机综合排名与场景化选购指南
  • TCP 抓包分析:tcp抓包工具、 iOS/HTTPS 流量解析全流程
  • 从电商API到数据分析的全流程教程
  • 【踩坑】ELK日志解析优化实战:解决多行合并与字段提取问题
  • 大数据高校舆情分析系统 snownlp情感分析 数据分析 可视化 Flask框架 大数据实战(源码)✅