【Git】多人协作-多分支协作

news2024/9/22 19:35:41

文章目录

    • 准备工作
    • 多人协作场景2-多分支协作
      • 补充:关于建立连接
    • 远程分⽀删除后,本地依然能看到的解决办法

准备工作

在windosw环境下,再克隆同一个项目仓库,模拟一起协作开发的小伙伴

image-20230728152521154

到此,相当于有了两个⽤⼾,分别在linux和windows上针对于同项⽬进⾏协作开发,我们的准备⼯作到此结束。

但是在实际开发当中,每个⽤⼾都有⾃⼰的gitee/github账号,如果要多⼈进⾏协同开发,必须要将⽤⼾添加进开发者,⽤⼾才有权限进⾏代码提交

image-20230728153405642

邀请用户

image-20230728153429191


多人协作场景2-多分支协作

⼀般情况下,如果有多需求需要多⼈同时进⾏开发,是不会在⼀个分⽀上进⾏多⼈开发,⽽是⼀个需求或⼀个功能点就要创建⼀个feature分支。现在同时有两个需求需要你和你的⼩伙伴进⾏开发,那么你们俩便可以各⾃创建⼀个分⽀来完成⾃⼰的⼯作

现在同时有两个需求需要你和你的⼩伙伴进⾏开发,那么你们俩便可以各⾃创建⼀个分⽀来完成⾃⼰的⼯作。上述我们是通过在码云上直接创建远程分⽀,其实在本地创建的分⽀也可以通过推送的⽅式发送到远端。

想在本地创建分支,最好先切到master分支,然后pull一下,才能保证本地master分支是最新的代码,然后再基于master分支创建新的分支

Linux平台的操作:

1.新建一个新分支feature-1并切换到新分支,新建文件实现需求

2.将新分支feature-1推送到远端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KNaNNiaA-1690597881082)(https://mangoimage.oss-cn-guangzhou.aliyuncs.com/202307281635301.png)]

此时码云上会增加一个分支:

image-20230728163548969

Windows下的操作

1.新建一个新分支feature-2并切换到新分支,新建文件实现需求

2.将新分支feature-2推送到远端

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCOwm7ad-1690597881082)(https://mangoimage.oss-cn-guangzhou.aliyuncs.com/202307281649042.png)]

此时,在本地,你看不⻅他新建的⽂档,他看不⻅你新建的⽂档。并且推送各⾃的分⽀时,并没有任何冲突,你俩互不影响,⽤起来很舒服!!


观察此时码云的状态:

image-20230728165116012

正常情况下,你俩就可以在⾃⼰的分⽀上进⾏专业的开发了!


但是假设有这么种情况:你的⼩伙伴突然⽣病了,但需求还没开发完,需要你帮他继续开发。这时你就需要在⾃⼰的机器上切换到feature-2分⽀帮忙继续开发,要做的操作如下:

Linux下的操作:

1.必须先拉取远端仓库的内容,此时就可以看到远端的feature-2分支

2.切换到feature-2分⽀上,可以和远程的feature-2分⽀关联起来, 否则将来只使⽤ git push 推送内容会失败

  • (远程已经有分支,然后本地没有的情况下创建分支并且建立连接):git checkout -b 分支名 origin/分支名:本地创建新分支&切换到新分支& 将本地分支和远程分支建立连接

3.切换成功后,便可以看⻅feature-2分⽀中的function2⽂件了,接着就可以帮⼩伙伴进⾏开发,然后推送

image-20230728170724251

查看远程状态:可以发现推送成功了

image-20230728170754140


这时,你的⼩伙伴已经修养的差不多,可以继续进⾏⾃⼰的开发⼯作,那么他⾸先要获取到你帮他开发的内容,然后接着你的代码继续开发。或者你已经帮他开发完了,那他也需要在⾃⼰的电脑上看看你帮他写的代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xvk6MBzs-1690597881084)(https://mangoimage.oss-cn-guangzhou.aliyuncs.com/202307281710132.png)]

注意:此时Pull⽆效的原因是⼩伙伴没有指定本地feature-2分⽀与远程origin/feature-2分⽀的链接,根据提⽰,设置feature-2和origin/feature-2的链接即可:

  • 当分支创建好了之后,让本地分支和远程的分支建立连接:git branch --set-upstream-to=origin/分支名 分支名
  • 还有一种方法就是上面的,在创建分支的时候就让本地分支和远程的分支建立连接

image-20230728171300629

⽬前,⼩伙伴的本地代码和远端保持严格⼀致。你和你的⼩伙伴可以继续在不同的分⽀下进⾏协同开发了。


补充:关于建立连接

建立连接之后,就可以直接使用简写的命令 如果不连接就需要使用长的命令

image-20230729101853831


各⾃功能开发完毕后,不要忘记我们需要将代码合并到master中才算真正意义上的开发完毕。

windows进行merge:

1.切换到master分支,pull一下,保证本地master是最新的内容

2.切换到dev分支,然后合并master分支,目的是为了如果有冲突直接在dev分支上进行处理

3.切换到master分支,合并feature-2分支

4.将master分支推送至远端

image-20230728173445153


此时在远端的master分支上:就可以看到小伙伴完成的内容

image-20230728173525255


Linux下进行合并

1.切换⾄ master分⽀, pull ⼀下,保证本地的master是最新内容

2.切换⾄ feature-1 分⽀, 合并 master 分⽀。 这么做是因为如果有冲突,可以在feature-1分⽀上进⾏处理,⽽不是在在master上解决冲突。

3.由于feature-1分⽀已经merge进来了新内容,为了保证远程feature-1分⽀最新,所以最好push⼀下

  • 要 push 的另⼀个原因是因为在实际的开发中,master的merge操作⼀般不是由我们⾃⼰在本地进其他⼈员或某些平台merge时,操作的肯定是远程分⽀,所以就要保证远程分⽀的最新。
  • 如果 merge 出现冲突,不要忘记需要commit才可以push!!
  1. 切换⾄ master 分⽀,合并 feature-1 分⽀
  2. 将 master 分⽀推送⾄远端

image-20230728174332733

此时远程仓库的状态:

image-20230728174010784

此时, feature-1 和 feature-2 分⽀对于我们来说就没⽤了,那么我们可以直接在远程仓库中将dev分⽀删除掉

image-20230728174123006


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

当前我们已经删除了远程的⼏个分⽀,使⽤git branch -a命令仍然可以看到所有本地分⽀和远程分⽀,但发现很多在远程仓库已经删除的分⽀在本地依然可以看到

image-20230728174650633

git remote show origin:查看remote地址,远程分⽀,还有本地分⽀与之相
对应关系等信息

此时我们可以看到那些远程仓库已经不存在的分⽀,根据提⽰,使⽤:git remote prune
origin
命令删除了那些远程仓库不存在的分⽀

image-20230728175018325

而对于本地仓库的分支的删除:直接使用git branch -d 分支名进行删除

image-20230728175207234

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

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

相关文章

344.翻转字符串+387.字符串中的第一个唯一字符

目录 一、翻转字符串 二、字符串中的第一个唯一字符 一、翻转字符串 344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:void reverseString(vector<char>& s) {int start0;int end s.size()-1;while(start < end){swap(s[sta…

超详细!Jmeter性能测试

前言 性能测试是一个全栈工程师/架构师必会的技能之一&#xff0c;只有学会性能测试&#xff0c;才能根据得到的测试报告进行分析&#xff0c;找到系统性能的瓶颈所在&#xff0c;而这也是优化架构设计中重要的依据。 测试流程&#xff1a; 需求分析→环境搭建→测试计划→脚…

安装使用 StableDiffusionWebUI

安装使用 StableDiffusionWebUI 1 什么是 StableDiffusionWebUI2 如何完美运行 StableDiffusionWebUI 1 什么是 StableDiffusionWebUI StableDiffusion 并不是一个真正意义上的软件&#xff0c;它是由 Github 上一位叫 automatic1111 的开发者将 StableDiffusion 的源代码做了一…

Go语言入门:从零开始的快速指南(一)

文章目录 引言Go语言的诞生背景Go 语言的特性安装Go语言环境集成开发环境安装第一个Go程序Go 源代码的特征解读 引言 Go语言&#xff08;也称为Golang&#xff09;是一种开源的、静态类型的编程语言&#xff0c;由Google开发。它的设计目标是简单、高效、安全、并且易于学习和…

使用 Docker Compose 部署 Redis Cluster 集群,轻松搭建高可用分布式缓存

Redis Cluster&#xff08;Redis 集群&#xff09;是 Redis 分布式解决方案的一部分&#xff0c;它旨在提供高可用性、高性能和横向扩展的功能。Redis Cluster 能够将多个 Redis 节点组合成一个分布式集群&#xff0c;实现数据分片和负载均衡&#xff0c;从而确保在大规模应用场…

Nacos 下载安装教程

文章目录 事先准备下载并启动 Nacos设置 Nacos 开机自启动开放 Linux 外部访问权限访问 Nacos 管理界面附录 笔者的运行环境&#xff1a; 安装成功过的 Nacos&#xff1a; Nacos 2.2.3 安装成功过的 Java&#xff1a; Java 17.0.7 安装成功过的 Linux&#xff1a; RedHat Ent…

学习Node.js的基础知识和核心概念(全面)

Node.js&#xff0c;这个神奇的技术&#xff0c;融合了前端与后端的力量&#xff0c;让JavaScript在服务器端发挥了异乎寻常的魔力。本文将通过代码和文字解释&#xff0c;全面介绍Node.js的特点&#xff0c;从异步非阻塞I/O到强大的模块系统&#xff0c;再到丰富的包管理和事件…

计算机软件著作权登记申请表-模板

计算机软件著作权登记申请表 软件基本信息 软件全称 Xxxxx软件 软件简称&#xff08;如无则不填&#xff09; 分类号 说明:在附件图1-计算机软件分类代码表中提供的分类编号选择填写 计算机软件分类代码&#xff08;单选&#xff09; 30104 计算机软件适用的国民经济代…

C++学习day--17 二级指针、数组指针、指针数组

1、二级指针 二级指针的定义&#xff1a; 二级指针也是一个普通的指针变量&#xff0c;只是它里面保存的值是另外一个一级指针的地址 int guizi1 888; int *guizi2 &guizi1; //1 级指针&#xff0c;保存 guizi1 的地址 int **liujian &guizi2; //2 级指针&a…

操作系统使用免密登录

服务器免密登录 背景 在工作中使用密码登录有时候会出现这样或者那样的不方便&#xff0c;一是密码要输入&#xff0c;如果明文输入则不安全&#xff0c;二则一旦修改密码要重新分发到有权限的小伙伴 场景 在之前的工作中有很多场景需要免密等登录&#xff0c;使用免密带来…

Lvs missing port问题实例

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 LVS相关文章链接: LVS 流程 SVS 流程 LVS extract net方法

QMLDay2:圆角按钮,关联键盘左右键,鼠标点击。状态切换控制。

QMLDay2 test1 作用&#xff1a; 圆角按钮&#xff0c;关联键盘左右键&#xff0c;鼠标点击。状态切换控制。 代码&#xff1a; import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 640height: 480visible: truecolor: "wh…

H.265/HEVC 速率控制

文章目录 速率控制视频编码速率控制速率控制的基本原理缓冲机制速率控制技术 H.265/HEVC 速率控制1. 目标比特分配2. 量化参数确定 速率控制 目前实际的视频编码率失真优化过程包括两部分&#xff1a;速率控制部分将视频序列分成编码单元&#xff0c;考虑编码单元的相关性通过…

C#,数值计算——t-分布(Student distribution)的计算方法与源程序

在概率论和统计学中&#xff0c;学生t-分布&#xff08;Students t-distribution&#xff09;经常应用在对呈正态分布的总体的均值进行估计。它是对两个样本均值差异进行显著性测试的学生t测定的基础。t检定改进了Z检定&#xff08;en:Z-test&#xff09;&#xff0c;不论样本数…

【PyQt实现复现框CheckBox】

PyQt实现复现框CheckBox 1 安装环境2 CtrlN&#xff0c;新建Main Window窗口&#xff0c;保存为checkBox.ui文件3 CheckBox的三种状态4 实现通用复选框的选中状态设置用户权限功能 1 安装环境 1&#xff09;Python环境安装PyQt5、PyQt-sip、PyQt5Designer、PyQt5-tools 2&…

【搜索】BFS中的最短路模型

算法提高课笔记 目录 单源最短路迷宫问题题意思路代码 武士风度的牛题意思路代码 抓住那头牛题意思路代码 多源最短路矩阵距离题意思路代码 双端队列BFS电路维修题意思路代码&#xff08;加了注释&#xff09; BFS可以解决边权为1的最短路问题&#xff0c;下面是相关例题 单源…

Mybatis 知识点

Mybatis 知识点 1.1 Mybatis 简介 1.1.1 什么是 Mybatis Mybatis 是一款优秀的持久层框架支持定制化 SQL、存储过程及高级映射Mybatis 几乎避免了所有的 JDBC 代码和手动设置参数以及获取结果集MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO…

PyTorch深度学习实战(8)——批归一化

PyTorch深度学习实战&#xff08;8&#xff09;——批归一化 0. 前言1. 批归一化原理2. 批归一化优势3. 批归一化对模型训练的影响3.1 未使用批归一化&#xff0c;且输入值较小3.2 使用批归一化&#xff0c;且输入值较小3.3 使用批归一化&#xff0c;且输入值较大 小结系列链接…

Redis—环境搭建

Redis—环境搭建 &#x1f50e;Centos 安装 Redis5创建符号链接修改配置文件启动 Redis停止 Redis &#x1f50e;Centos 安装 Redis5 Centos8 安装 Redis5 yum install -y redisCentos7 安装 Redis5 Centos7 中 yum 源提供的 Redis 版本是 Redis3(有点老), 因此先安装 scl 源 …

算法综合篇专题二:滑动窗口

“在混沌想法中&#xff0c;最不可理喻念头。” 1、长度最小的子数组 (1) 题目解析 (2) 算法原理 class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();int sum 0;int len INT_MAX;for(int left0,r…