git中的多人协作开发场景

✨前言✨

📘 博客主页: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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用SQL工具批量执行SQL文件?(以MySQL和SQLynx为例)

目录 1. 配置MySQL数据源 2. 打开 SQL 文件 3. 执行 SQL 文件 4. 检查执行结果 5. SQL文件示例 6. 注意事项 7. 总结 在现代数据库管理和操作中,批量执行 SQL 文件在 MySQL 中显现出其巨大的价值和不可替代的作用。通过将多个 SQL 语句集成在一个文件中进行批…

粉尘螨虫满天飞?教你一招解决,推荐好用的空气净化器品牌

“家中无尘,心中无事”,这是每个家庭的理想状态。然而,灰尘和螨虫无处不在,即使每天打扫,也难以彻底消除。传统的清洁手段,比如扫地和擦灰,并不能从根本上解决问题。这时候,除尘空气…

一款Wordpress网站导航主题,带昼夜切换功能

Wordpress网站导航主题,带昼夜切换功能。 基于wordpress,部署和使用都比较方便。 界面比较简洁大方。后台管理功能也比较全面,值得一试。 这款主题界面、功能都非常简洁。 作者把这款定位为简约导航主题,所以这款wordpress导航…

如何获得一个Oracle 23ai数据库(vagrant box)

准确的说,是Oracle 23ai Free Developer版,因为企业版目前只在云上(OCI和Azure)和ECC上提供。 前面我博客介绍了3种方法: Virtual ApplianceRPM安装Docker 今天介绍最近新出的一种方法,也是我最为推荐的…

Python 基础:异常

目录 一、异常概念二、处理异常2.1 抛出异常2.2 使用 try-except 代码块2.3 使用 try-except-else 代码块2.4 静默失败 三、总结 遇到看不明白的地方,欢迎在评论中留言呐,一起讨论,一起进步! 本文参考:《Python编程&a…

记一次某单位的内网渗透测试

0x01 web打点 访问漏洞url:http://www.xx.xx.com进入某医疗系统 使用越权加文件上传拿到shell 0x02 内网渗透 192.168.xx.x 管理员 通过哥斯拉上线msf 上线后进行信息收集: 网卡信息、补丁信息、杀毒进程、用户在线情况、是否存在域、翻文件查找数据库密码、浏览器保存密码…

数据结构和算法之复杂度比较

数据结构和算法之复杂度比较 参考如下网址:https://www.bigocheatsheet.com/ 方便快速查询 1. 复杂度比较 2. 常见数据结构复杂度 3. 常见算法复杂度

强化学习和Q-Learning的综合研究

目录 一、说明 二、什么是强化学习? 三、监督学习、无监督学习和强化学习之间的区别。 四、强化学习中使用的术语。 五、强化学习中的智能体-环境交互:一个迷宫示例。 六、贝尔曼方程。 七、马尔可夫决策过程 (MDP) 八、马尔可夫决…

活动 | 华院计算受邀参加同心知联汇,走进“模速空间”

6月17日,由市知联会先导产业专委会、市知联会经济与金融专委会、市经信系统知联会、上海市人工智能行业协会主办,上海创智合力信息科技有限公司、上海大模型生态发展有限公司承办的同心知联汇,走进“模速空间”活动在上海大模型创新生态社区成…

SQLite 3 优化批量数据存储操作---事务transaction机制

0、事务操作 事务的目的是为了保证数据的一致性和完整性。 事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为 ACID: 原子性(Atomicity):确保工作单位内的所有操作都成功完成&…

wps要会员才能把pdf分开,这不纯属智商税吗

我有一个文档 然后 我给你们写好了一个代码 from PyPDF2 import PdfReader, PdfWriterdef split_pdf(file_path, ranges, output_names):# Open the input PDF filewith open(file_path, rb) as pdf_file:reader = PdfReader(pdf_file)total_pages = len(reader.pages)if len…

Day14—基于Langchain-chatchat搭建本地智能

一、基于Langchain-chatchat搭建本地智能 知识问答系统 1、项目介绍 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开一种利用 langchain 思想实现的基于本地知识库的问答应用,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知…

vue3 antdv Select 实现输入关键词,通过服务器去查询数据,并显示到表格中的实现思路。

实现思路: 1)输入关键词,通过Select的查询事件(onSearch)来到服务器查询数据。 2)根据查询到的数据显示到表格中,然后通过表格的(cellClickEvent)事件来选择相关的用户…

大润发超市购物卡怎么用?

收到大润发超市的礼品卡以后,我才发现,最近的大润发也得十来公里 为了100块的大润发打车也太不划算了 叫外送也不在配送范围内 最后没办法,在收卡云上出掉了,还好最近价格不错,也不亏,收卡云的到账速度也…

关于圆的方程

关于圆的方程 flyfish 几何定义 圆是平面上所有到一个固定点(圆心)距离相等的点的集合。 解析几何描述 设圆心位于点 ( h , k ) (h, k) (h,k),半径为 r r r,那么对于圆上的任意一点 ( x , y ) (x, y) (x,y),它…

HTML播放flv

页面效果&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" …

第 18章 安全架构设计理论与实践

安全架构是架构面向安全性方向上的一种细分&#xff0c;可关注三个安全方面&#xff0c;即产品安全架构、安全技术体系架构和审计架构&#xff0c;这三个方面可组成三道安全防线。本章主要分析安全威胁、介绍安全模型&#xff0c;在此基础上&#xff0c;就系统、信息、网络和数…

Matlab数学建模实战应用:案例4 - 图像处理

目录 前言 一、图像处理基础 二、Matlab图像处理工具箱 三、案例&#xff1a;图像锐化、去噪和分割 步骤 1&#xff1a;读取和显示图像 步骤 2&#xff1a;图像锐化 步骤 3&#xff1a;图像去噪 步骤 4&#xff1a;图像分割 完整代码示例 四、实际应用 实例总结 总…

板凳----Linux/Unix 系统编程手册 25章 进程的终止

25.1 进程的终止&#xff1a;_exit()和exit() 440 1. _exit(int status)&#xff0c; status 定义了终止状态&#xff0c;父进程可调用 wait 获取。仅低8位可用&#xff0c;调用 _exit() 总是成功的。 2.程序一般不会调用 _exit()&#xff0c; 而是调用库函数 exit()。exit() …

手机携号转网接口查询与对接指南:技术开发者必备手册

在当今通信技术飞速发展的背景下&#xff0c;手机携号转网已成为推动电信市场竞争、保障用户权益的重要手段。而对于技术开发者而言&#xff0c;掌握手机携号转网接口的查询与对接方法&#xff0c;无疑是提升服务兼容性和用户满意度的关键。 比如如下应用场景&#xff1a; 1.…