git中的多人协作开发场景

news2024/12/24 8:22:00

✨前言✨

📘 博客主页:to Keep博客主页
🙆欢迎关注,👍点赞,📝留言评论
⏳首发时间:2024年6月20日
📨 博主码云地址:博主码云地址
📕参考书籍:《C++ Primer》《C++编程规范》
📢编程练习:牛客网+力扣网
**由于博主目前也是处于一个学习的状态,如有讲的不对的地方,请一定联系我予以改正!!!

多人协作开发

  • 1 模拟多个用户
  • 2 多人协作开发
    • 2.1 单分支多人开发
    • 2.2 多分支多人开发
    • 2.3 合并
  • 3 远程分⽀删除后,本地git branch -a依然能看到的解决办法

1 模拟多个用户

     ~~~~     我们要保证Linux与Windows环境下都安装好了git,我们在Linux下克隆一个仓库,然后在Windows下克隆同一个仓库,表示两个不同的用户操作同一个仓库!
     ~~~~     实际开发中,每个⽤⼾都有⾃⼰的gitee/github账号,如果要多⼈进⾏协同开发,必须要将⽤⼾添加进开发者,⽤⼾才有权限进⾏代码提交:
在这里插入图片描述      ~~~~     目前,我们的仓库中只有⼀个master主分⽀,但在实际的项⽬开发中,在任何情况下其实都是不允许直接在master分⽀上修改代码的,这是为了保证主分⽀的稳定。所以在开发新功能时,常常会新建其他分⽀,供开发时进⾏迭代使⽤。

在这里插入图片描述
一般我们都是直接在远程仓库中新建好分支,然后拉取到本地仓库中去!当然也可以在本地仓库建立好分支,上传到远程仓库上去!我们首先需要在本地仓库建立好分支,然后切换到该分支,使用下述命令上传分支信息

git push origin 分支名

如果要从本地删除远端仓库中的分支,我们就先删除本地分支,在删除远程仓库中的分支,与删除标签类似,只不过这里就是换成分支名!

2 多人协作开发

2.1 单分支多人开发

     ~~~~     假如上述的两个用户(Linux用户与Windows用户)都针对于一个dev分支进行开发!首先需要保证master分支上的内容是最新的,所以在本地仓库一开始应当拉取远程仓库,假设现在Windows用户在dev分支上开发完成,在Windows环境下的dev分支下进行add,commit操作,写入本地仓库中去,然后使用git push操作提交到远程仓库的dev分支中去,这里我们需要注意一定要是本地分支与远程仓库的分支建立好了链接才可以直接使用这个简短的命令,否则就要像前面分支介绍笔记中一样,要指定才可以,一般从远程仓库clone下来的(不是git pull下来的),就会自动链接好本地分支与远程仓库分支的!我们可以通过以下命令来查看分支信息:

git branch -r      ~~~~     //查看远程分支的信息
git branch -vv    ~~   //查看本地分支与远程仓库的分支链接情况

我们用以下命令可以使得分支之间建立链接

git checkout -b dev origin/dev //创建本地dev分支,切换到dev分支上,并且建立链接
git branch --set-upstream-to=origin/远程仓库分支名 本地仓库分支名    ~~   //本地分支与远程仓库的分支建立链接

然后在本地仓库将master分支合并到dev分支,确保没有冲突,有冲突就在dev分支下进行修改,然后切换到master分支,在将dev分支中的内容合并到master中去!在上传到远程仓库中的master分支中去!
     ~~~~     我们在Linux用户下的dev分支进行开发,我们为了避免冲突,先拉取一下远程仓库,保证dev分支中的内容是最新的,然后在dev分支下对代码进行开发,开发完成之后进行add,commit操作,在提交到远程仓库对应的dev分支上,然后在本地仓库将master合并到dev分支,没有冲突与代码的bug,我们在合并到master分支上,并提交到远程仓库中去!
     ~~~~     简单总结一下来说就是,单分支的多人协作开发,是容易出现冲突的,我们首先必须确保master分支上的内容必须是最新的,所以在开发前就必须在master分支下拉取远程仓库中master分支对应的内容,然后在切换到dev分支开发,然后add,commit操作,然后在提交到远程仓库,如果提交失败有冲突,说明在我们开发过程中,有人又上传了代码,所以我们就必须在拉取远程仓库中的内容,然后解决冲突,在重新add,commit操作之后,在git push到远程仓库就行了!最后,我们还要合并master分支与dev分支,合并的方法上面已经说过了!合并完分支之后删除掉分支就可以了!

2.2 多分支多人开发

在实际的开发中,有许多的功能,我们一个功能交给一个人来进行开发,我们就可以用一个分支来对应一个功能!本次我们创建一个feature-1和feature-2两个分支对应着两个功能,feature-1分支给Linux用户用,feature-2给Windows用户用!我们直接在远程仓库中创建这两个分支,然后在对应的用户环境中创建对应的分支并且建立好链接!也就是说这样各自开发,冲突的概率就会小!我们往feature-1分支上传linux.txt文件,往feature-2分支上传Windows.txt文件!下图所示,是在linux环境下:
在这里插入图片描述
在这里插入图片描述
下面我们用Windows环境下来进行尝试!
在这里插入图片描述
在这里插入图片描述
由于Linux环境下先进行开发,所以我们就需要feature-1的内容合并到master上,我们就先切换到linux环境下的master分支,拉取远程仓库,确保本地仓库中的master分支是最新的!然后在进行合并操作
在这里插入图片描述在这里插入图片描述
同理,我们对Windows环境下用户也是如此操作

在这里插入图片描述
经过上述操作,此时远程仓库中的master分支就有了以上的两个文件
在这里插入图片描述
假如Windows用户今天请假了,需要Linux用户需要帮助Windows用户进行开发,我们应当也是同样的做法!
在这里插入图片描述

2.3 合并

对于合并操作,我们一般是在远程仓库申请合并就可以了!
在这里插入图片描述
上述多人协作开发中的合并操作是基于学习的,能够让我们进一步熟练的使用git命令而言的!
在这里插入图片描述
选择要合并的分支之后,只需要管理员进行处理就可以了!

3 远程分⽀删除后,本地git branch -a依然能看到的解决办法

我们查看远端仓库的分支时,我们可以发现,已经删除的分支,依旧还是可以显示的!
在这里插入图片描述
我们可以使用下面这个命令进行删除操作!

  • git remote prune origin

在这里插入图片描述
使用该命令之后,我们可以发现,确实移除了不在的分支,如下图所示:
在这里插入图片描述

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

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

相关文章

告别夏季粉尘螨虫困扰,这些空气净化器品牌你不能错过!

夏季来临,粉尘螨虫肆虐,对家居环境造成巨大威胁。俗话说:“病从口入,祸从口出。”夏季是粉尘和螨虫的活跃期,常规的清洁手段如吸尘、抹布擦拭等已无法彻底清除这些顽固的过敏源。尤其是在空调使用频繁的日子里&#xf…

民宿小程序在线预约系统开发,提高品牌影响力

在旅游业发展旺盛的当下,也带动了各地民宿的发展。在科技的支持下,民宿小程序得到了快速发展,凭借方便快捷的优势为大众带来新的体验。 民宿小程序的发展为用户提供了便捷的预订渠道,用户可以根据对房间的要求选择,能…

DNF安卓分离仅是开始:游戏厂商积极布局自有渠道,市场变革在即

毫无征兆,DNF手游今天突然宣布从各大安卓平台下架。 《地下城与勇士:起源》运营团队于6月19日发布声明,指出因合约到期,游戏将不再上架部分安卓平台的应用商店。然而,这一事件并非完全无迹可循。 早在2021年初,华为游…

崖山数据库一体机 | 高性能、高可靠、智能化运维的一站式数据库解决方案

国产软硬件融合难? 性能调优挑战重重? 兼容性问题频发? 软硬件单独购买TCO成本高? .... 面对数据管理的这些挑战 数据库一体机的出现 提供了全新的解决方案 就在刚结束的浪潮信息元脑中国行-广州站活动现场上,崖…

搭建预约咨询小程序,高效便捷新选择

一、预约咨询小程序是什么? 预约咨询小程序是一款适用于各种生活场景包括医疗、保洁、宠物护理、法律等方面的预约咨询类小程序。 二、这款小程序有什么亮点优势? 预约咨询小程序适用场景广泛,无论是心理咨询、法律咨询,还是宠物…

Spring AI 介绍以及与 Spring Boot 项目整合

Spring AI 项目旨在简化使用 Spring Boot 开发包含人工智能功能的应用程序,提供抽象和支持多种模型提供商及矢量数据库提供商。 Spring AI 的功能特点 支持主流模型提供商:如 OpenAI、Microsoft、Amazon、Google 和 Huggingface 等。支持多种模型类型&a…

springboot大学生体质测试管理系统 LW+PPT+源码

3 系统需求分析 3.1 系统可行性分析及目的 3.1.1 系统设计目的 如今我们已经越来越离不开互联网给我们带来的生活便利,希望大学生体质测试管理系统也能通过活泼、清新的界面给用户提供简单的与互动的网站。方便用户在平时利用有限的时间对测试信息进行查看&#xf…

crontab异常任务删除不了,清除挖矿病毒

1、事件原因 当天发现服务器访问速度异常缓慢,通过top命令查看系统资源使用情况,发现名为systemd-mont(可能是一个误写或自定义的进程名)的两个异常线程占用了大量的CPU资源,几乎导致CPU满载。 2、查找问题 为了确定这…

椭圆的矩阵表示法

椭圆的矩阵表示法 flyfish 1. 标准几何表示法 标准几何表示法是通过椭圆的几何定义来表示的: x 2 a 2 y 2 b 2 1 \frac{x^2}{a^2} \frac{y^2}{b^2} 1 a2x2​b2y2​1其中, a a a 是椭圆的长半轴长度, b b b 是椭圆的短半轴长度。 2.…

JavaBean与内省,注解的语法及使用

JavaBean Javabean 是 Java 中最重要的一个可重用的组件(减少代码重复,可重用,封装业务逻辑,封装数据).组件:一些符合某种规范的类,可以完成特定的功能. JavaBean 的规范要求: 使用 public 修饰.字段私有化.提供 get/set 方法.公共的无参数的构造器.(使用反射,使用字节码对象.n…

记录一次递归查询导致的 java.lang.StackOverflowError: null

问题截图: 由于作者使用递归统计信息,刚开始这个接口运行得正常,但是上线运行一段时间后接口就出现了,如图的栈溢出错误。可以看出确实是堆栈溢出了,解决栈溢出目前只有两种方式: 第一种调大栈的大小&…

MySQL 离线安装客户端

1. 官方网址下载对应架构的安装包。 比如我的是centOs 7 x64。则需下载如图所示的安装包。 2. 安装 使用如下命令依次安装 devel , client-plugins, client. rpm -ivh mysql-community-*.x86_64.rpm --nodeps --force 在Linux系统中,rpm是一个强大的包管理工具&…

Java面试八股之Mybatis和JPA的区别

Mybatis和JPA的区别 Mybatis 和 JPA(Java Persistence API)是两种在 Java 应用程序中用于数据持久化的框架,它们各有特点和适用场景。下面是它们之间的一些主要区别: 映射方式: Mybatis 是半自动的 ORM 框架&#xf…

移植案例与原理 - HPM包描述文件bundle.json

发现各个子系统、组件、三方库目录下都添加了bundle.json,了解下该文件的用途、用法并快速记录下。 1、HPM Bundle的基本概念 Bundle是OpenHarmony中一个用来表示分发单元的术语,等同于包,一个Bundle中通常包含以下内容: 被分发…

股票核心因子解读以及如何从接口获取股票数据信息

目录 1 股票基础信息1.1 股票核心因子1.2 获取股票信息 2 如何从接口获取股票数据2.1 yfinance2.2 finnhub-python2.3 alpha_vantage2.4 efinance2.4 Tushare 3 如何从各大金融平台获取咨询信息3.1 国外3.2 国内 1 股票基础信息 1.1 股票核心因子 基本面因子 因子名称计算公…

23种设计模式之桥接模式

桥接模式 1、定义 桥接模式:将抽象部分与它的实现部分解耦,使得两者都能独立变化 2、桥接模式结构 Abstraction(抽象类):它是用于定义抽象类的,通常是抽象类而不是接口,其中定义了一个Imple…

基于JSP的高校信息资源共享平台

开头语: 你好呀,我是计算机学长猫哥!如果你对高校信息资源共享平台感兴趣或者有相关需求,可以通过文末的联系方式找到我。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDEA…

2024/6/20 驱动day7GPIO子系统

GPIO子系统点六盏灯 #include <linux/init.h> #include <linux/module.h> #include <linux/of.h> #include <linux/gpio.h> #include <linux/of_gpio.h> struct device_node* node; struct device_node* child_node1; struct device_node* child…

CRMEB多商户阿里云集群部署流程

注意: 1.所有服务创建时地域一定要选择一致,这里我用的是杭州K区 2.文件/图片上传一定要用类似oss的云文件服务, 本文不做演示 一、 创建容器镜像服务&#xff0c;容器镜像服务(aliyun.com) ,个人版本就可以 先创建一个命名空间然后创建一个镜像仓库查看并记录镜像公网地址创建…

基于功率谱密度的旋转机械故障诊断方法(MATLAB R2021b)

关于功率谱密度&#xff0c;可以参考如下文章&#xff1a; https://zhuanlan.zhihu.com/p/417454806 在实际应用中&#xff0c;一个信号我们不可能获得无穷长时间段内的点&#xff0c;对于数字信号&#xff0c;只能通过采样的方式获得N个离散的点。实际信号基本上是随机信号&…