GIt的原理和使用(五):模拟多人协作的两种情况

news2024/11/24 6:36:10

目录

多人协作

多人协作一

准备工作 

 协作开发

多人协作二

准备工作

额外场景

申请单合并分支

更推荐写法 

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


多人协作

多人协作一

  • 目标:在远程master分支下的file.txt文件新增代码“aaa”和“bbb”
  • 实现:由开发者1新增“aaa”,由开发者2新增“bbb”
  • 条件:在一个分支下协作完成

准备工作 

1、在远程仓库中创建一个dev分支(远程分支,很推荐)

2、令linux中的开发者1获取新建的dev分支

  • git branch -r:只显示哪些远程分支已经被拉取到了本地
  • git branch -a:列出所有的分支,包括本地分支和远程分支,如果一个远程分支被拉取到了本地,它将以类似 remotes/origin/branch_name 的形式显示在列表中

3、在windows环境下clone一个和linux中开发者1一样的仓库,模拟开发者2:

        ①D盘新建一个空的git文件夹,进入文件夹,在空白处按住shift+鼠标右键,选择在此处打开PowerShell窗口:

② 将远程仓库克隆给一份给它

 协作开发

1、开发者1在其本地创建一个dev分支,在将该分支切换为工作分支后与远程dev分支建立连接

  • git checkout -b 本地分支名 远程分支名
  • git branch -vv:显示本地分支列表以及每个分支的跟踪信息

2、修改file.txt文件,向其中新增aaa并提交给本地仓库的dev分支

3、将开发者1的本地dev分支提交给远程dev分支 

出现以下界面可以用git config --global push.default matching指令解决:

提交成功: 

4、开发者2在其本地创建一个dev分支,在将该分支切换为工作分支后与远程dev分支建立连接

5、在记事本上修改file.txt文件,新增bbb

6、尝试将开发者2的本地dev分支提交给远程dev分支 

  • 原因:冲突问题,二者都将file.txt文件新增内容提交给远程仓库,远程仓库不知道要用谁的

7、人工解决冲突问题并再次提交(对远程dev分支与当前dev分支合并后出现的冲突进行修改)

8、向远程dev分支推送成功(此时远程master分支中的file.txt文件仍未被修改)

9、合并远程的dev分支和master分支 

远程操作: 

本地操作: 

①将本地dev更新至最新(如果不更本地dev的file.txt没有新增bbb)

②切换至本地master并令本地master为最新状态

如果不更新的话,如果远程master中有ccc但是此时本地master没ccc,在本地master合并了本地dev后进行提交时,该master也没有ccc 

③切换至本地dev,并合并本地master(由于什么都没干所以中间有些内容是没啥东西的)

  • 原因:这样有了冲突也可以在dev上进行修改,直接在master上修改有风险

④切换至本地master,并合并本地dev,最后将合并后的master提交给远程master

⑤查看远程仓库的master分支中的file.txt文件(已被修改)

⑥删除远程dev分支

多人协作二

  • 目标:远程master分支下新增function1和function2文件
  • 实现:由开发者1新增function1,由开发者2新增function2
  • 条件:在不同分支下协作完成

准备工作

①开发者1创建一个feature-1分支,并切换至该分支,同时在该分支下创建并编写function1文件

②将本地feature-1分支推送至远程仓库

本地与远程仓库建立连接的三种方式:(②时的远程仓库中没有设置分支所以后两种方法不能用)

  • git push origin 本地分支名:强制推送本地分支至远程仓库
  • git checkout -b 本地分支名 远程分支名:切换至本地分支时就将该分支与远程分支建立连接
  • git branch -u origin/远程分支名 本地分支名:单纯的将本地分支和远程分支建立连接

③保证开发者2的master分支是最新的版本

④开发者2创建一个feature-2分支,并切换至该分支,同时在该分支下创建并编写function2文件

  • 新建function2文件时直接在对应文件夹下创建function2文本文件即可 

至此已完成初始目标 

额外场景

问题:开发者2生病,开发者1要接替开发者2的工作

①开发者1从远程仓库中获取开发者2的工作内容

对应git pull:

  • 拉取分支中的内容时需要将两个分支建立连接后才能拉取
  • 可以直接拉取仓库内容

②开发者1创建feature-2分支,并切换至该分支,同时将该分支与远程仓库中的feature-2分支连接

③开发者1帮助开发者2继续开发他的function2文件,同时提交至本地feature-2分支 

④将本地feature-2分支更新的内容推送到远程feature-2分支中 

新问题:此时开发者2病好了申请继续开发

①开发者2获取远程仓库中开发者1写了一部分的feature-2分支的内容(不拉就还是一行coding)

② 开发者2完成对function2文件的开发

申请单合并分支

管理者进行审批: 

 

更推荐写法 

        虽然申请单的方式看起来很方便,但是为了防止冲突问题,我们更推荐在副分支上将该副分支与主分支合并后(有冲突问题就解决)再将该分支与主分支合并的方式:

①将开发者1的master分支更新至最新:

② 合并本地的feature-1分支和master分支,如果两个分支没有冲突就会显示以下界面

③查看本地feature-1分支是否与远程的feature-1分支连接

④强制将开发者1的本地feature-1分支推送给远程仓库(新修改的内容覆盖远程的)

⑤提交申请表单申请将远程feature-1分支与远程master分支合并

 ⑥删除远程的feature-1和-2分支 

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

在删除远程仓库的feature-1和feature-2分支后,远程仓库中只有master分支了:

但是此时我们在开发者中使用git branc -a依然能看到原来的feature-1和feature-2分支:

展示远程分支情况指令:git remote show origin

清理无用远程分支:git remote prune 指令名 远程仓库分支名(git branch -a时不会显示)

最后用git branch -d 分支名删除本地的无用分支即可

~over~

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

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

相关文章

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果 目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单实战案例 之八 简单水彩画效果 一、简单介绍 二、简单图像浮雕效果实现原理 三、简单水彩画效果案例实现简单步骤 四、注意事项…

【排序算法——数据结构】

文章目录 排序排序的基本概念1.插入排序2.希尔排序3.冒泡排序4.快速排序5.简单排序6.堆排序7.归并排序8.基数排序8.外部排序9.败者树10.置换选择排序 排序 排序的基本概念 排序,就是重新排列表中的元素,使表中的元素满足按关键字有序的过程 评价指标算…

数据库聚簇索引和非聚簇索引的区别

聚簇索引(Clustered Index)和非聚簇索引(Non-clustered Index)是数据库中两种不同的索引类型,它们的主要区别在于数据的存储方式和索引的结构: 数据存储方式: 聚簇索引:索引的叶子节…

【21-40】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

【21-40】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了 以下是本文参考的资料 欢迎大家查收原版 本版本仅作个人笔记使用21、HTTPS是如何保证数据传输的安全,整体的流程是什么?(SSL是…

夜莺浏览日志、filebeat采集日志(四)

文章目录 一、elasticsearch二、filebeat三、日志分析 一、elasticsearch docker启动 docker run -d -p 9200:9200 -p 9300:9300 --restartalways -e ES_JAVA_OPTS"-Xms512m -Xmx512m" \ -e discovery.typesingle-node -e xpack.security.enabledtrue -e ELASTIC_P…

HSP_04章_扩展: 进制、位运算

文章目录 10. 扩展: 进制11. 位运算11.1 二进制在运算中的说明11.2 原码 反码 补码11.3位运算符11.3.1 ~按位取反11.3.2 &按位与11.3.3 ^按位异或11.3.4 |按位或11.3.5 << 左移11.3.6 >> 右移 10. 扩展: 进制 进制介绍 进制的转换 2.1 其他进制转十进制 二进…

投稿指南【NO.12_9】【极易投中】核心期刊投稿(现代电子技术)

近期有不少同学咨询投稿期刊的问题&#xff0c;大部分院校的研究生都有发学术论文的要求&#xff0c;少部分要求高的甚至需要SCI或者多篇核心期刊论文才可以毕业&#xff0c;但是核心期刊要求论文质量高且审稿周期长&#xff0c;所以本博客梳理一些计算机特别是人工智能相关的期…

通过pymysql读取数据库中表格并保存到excel(实用篇)

本篇文章是通过pymysql将本地数据库中的指定表格保存到excel的操作。 这里我们假设本地已经安装了对应的数据库管理工具&#xff0c;里面有一个指定的表格&#xff0c;现在通过python程序&#xff0c;通过调用pymysql进行读取并保存到excel中。 关于数据库管理工具是Navicat P…

vCenter 提示 Root user password expired 解决办法

vCenter root 密码过期告警 vCenter 一般部署为一台虚拟机&#xff0c;该 root 用户是 vCenter 虚拟机SSH登录的用户&#xff0c;以及 vcenter VAMI的登录用户&#xff0c;该密码默认过期时间为90天。 vCenter涉及多个登录界面&#xff0c;本次提示root密码过期的用户涉及后两…

搜索与图论——Dijkstra算法求最短路

最短路算法 稠密图与稀疏图 n为点数&#xff0c;m为边数。m远小于n的平方为稀疏图&#xff0c;m接近n的平方为稠密图。 稀疏图用邻接表存&#xff0c;稠密图用邻接矩阵存 朴素版dijkstra时间复杂度为O(n^2),对于稠密图可以ac&#xff0c;但遇到稀疏图时会TLE。 dijkstra函数实…

【leetcode】力扣简单题两数之和

题目 思路 代码实现 #include<iostream> #include<unordered_map>using namespace std;class Solution { public:vector<int> TwoNumber(const vector<int>& nums, int target){vector<int> number_vector;unordered_map<int, int> …

java数组与集合框架(一) -- 数据结构,数组

数据结构 概述 为什么要讲数据结构&#xff1f; 任何一个有志于从事IT领域的人员来说&#xff0c;数据结构&#xff08;Data Structure&#xff09;是一门和计算机硬件与软件都密切相关的学科&#xff0c;它的研究重点是在计算机的程序设计领域中探讨如何在计算机中组织和存储…

FL Studio21.2.3中文版软件新功能介绍及下载安装步骤教程

FL Studio21.2中文版的适用人群非常广泛&#xff0c;主要包括以下几类&#xff1a; FL Studio 21 Win-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55981 FL Studio 21 Mac-安装包下载如下: https://wm.makeding.com/iclk/?zoneid55982 音乐制作人&#xff1a…

软考101-上午题-【信息安全】-网络安全

一、网络安全 1-1、安全协议 SSL(Secure Socket Layer&#xff0c;安全套接层)是 Netscape 于 1994年开发的传输层安全协议&#xff0c;用于实现 Web 安全通信。1996 年发布的 SSL3.0 协议草案已经成为一个事实上的Web 安全标准。 端口号是43。 SSL HTTP HTTPS TLS(Transpo…

整合SpringSecurity+JWT实现登录认证

一、关于 SpringSecurity 在 Spring Boot 出现之前&#xff0c;SpringSecurity 的使用场景是被另外一个安全管理框架 Shiro 牢牢霸占的&#xff0c;因为相对于 SpringSecurity 来说&#xff0c;SSM 中整合 Shiro 更加轻量级。Spring Boot 出现后&#xff0c;使这一情况情况大有…

【论文通读】AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation

AutoGen: Enabling Next-Gen LLM Applications via Multi-Agent Conversation 前言AbstractMotivationFrameworkConversable AgentsConversation Programming ApplicationA1: Math Problem SolvingA2: Retrieval-Augmented Code Generation and Question AnsweringA3: Decision…

Linux 给网卡配置ip

ip addr | grep eth9 ifconfig eth9 10.0.0.2 netmask 255.255.255.0 up

算法系列--动态规划--背包问题(4)--完全背包拓展题目

&#x1f495;"这种低水平质量的攻击根本就不值得我躲&#xff01;"&#x1f495; 作者&#xff1a;Lvzi 文章主要内容&#xff1a;算法系列–动态规划–背包问题(4)–完全背包拓展题目 大家好,今天为大家带来的是算法系列--动态规划--背包问题(4)--完全背包拓展题目…

数字化时代多系统安全运维解决方案

添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&…

VS2022+ObjectARX 2024环境搭建

1、安装好对应版本的VS2022和AutoCAD版本后&#xff0c;再下载两个文件。如下&#xff1a; 2、 先安装objectarx-for-autocad-2024-win-64bit-dlm.sfx.exe&#xff08;SDK&#xff09;&#xff0c;安装后如下&#xff1a; 3、安装ObjectARXWizard2024.msi&#xff0c;如下&…