初识git · 多人协作

news2024/12/29 13:55:14

目录

前言:

多人协作一

多人协作二


前言:

git从发布以来,强大的功能有版本回退以及分支管理,那么分支管理用来不仅是为了维护master的,更多的是多人协作的一种代表,所以多人协作这一章节,基本上说的就是我们如何使用多分支来实现一个团队开发功能。

本文的目标有两个:

一个是两个分支的情况下,master分支和dev分支,两个开发者共同在dev分支下开发两段代码,为了方便阐述,这里让a开发者添加Hello world,b开发者添加Hello git即可。

另一个是三个分支的情况下,a b拥有自己的独立分支,开发完自己的工作之后,共同合并到master分支上即可。

那么话不多说,直接进入到正题部分。


多人协作一

首先,我们创建仓库的界面自然是可以跳过的,所以我们使用上篇文章创建的仓库->linux,

该仓库除了一个code目录,什么也没有,我们将file.txt作为开发的文件:

那么第一个问题,我们自己演示这个过程的时候,如果创建两个开发者呢?

所以我们需要在linux环境下创建一个,在windows环境下再克隆仓库:

我们使用https协议创建,使用.ssh还需要配置一下下,有点点麻烦。

此时仓库的内容就出来了,那么我们还需要创建分支,这里可以直接在远端创建一个分支,然后在本地仓库进行连接即可:

在gitee的分支界面就可以创建分支,名称不妨取为dev。

那么现在的第一个问题,本地的仓库没有远程的分支怎么办?所以我们需要pull一个分支下来:

pull之后,使用-a选项,可以看到除了本地分支之外的远程分支,-r是直接看到远程的分支,-r remote的意思。现在分支有了,但是本地的分支还没有,所以我们应该创建本地的dev分支:

那么光创建是不可以的,因为本地分支和远程分支dev是没有连接上的,所以使用命令checkout后面加上一个origin/dev即可。此时两个分支就连接上了。另外的一个开发者同理:

好了,两个开发者的分支工作已经做好了,还差一点,我们将file.txt文件传过去,然后在开发者2上pull一下:

这里肯定是有同学有问题的,因为git push 后面的分支名称呢?这是因为dev分支本地和远程的是连接在一起的,所以我们可以省略后面的git  push origin master:master的origin后面的部分了。

那么开发者1push了,开发者2pull一下就就可以了:

那么现在看看Gitee里面的情况如何:

需要注意的是,我们要切换分支才能查看到新传的file.txt,因为master分支是没有merge的。

现在多分支的情况已经准备好了,就准备开发了。

首先,我们切换到开发者1并且新增加内容:

常规的三部曲就完成了,此时切换到gitee部分查看:

dev分支下的开发者1已经完成了对应的工作,那么切换到开发者2并完成对应的工作:

需要注意的是,windows下可没有vim哦,所以我们直接用记事本打开就可以了:

此时修改完成,那么进入到三部曲环节:

并且也是不出意外的报错了,此时发生的并不是合并冲突,而是因为开发者1push之后导致开发者2的本地和远程并不同步,所以先pull一下,此时就会出现合并冲突了:

我们希望的出现了,那么我们解决冲突即可:

冲突解决完毕。

重新进行三部曲,这里不要忘记,merge冲突之后需要重新add commit等:

那么此时查看Gitee情况:

符合条件。

那么最后的情况是我们需要和master合并:

此时有一个好习惯是将切换到master分支的时候,再pull一下,保证master的代码情况是最新的,此时到dev分支先和master分支进行合并,这也是一个好习惯:

但是现在远端的可是没有push哦,所以还需要推送到远端:

那么dev分支就没用了,删除即可。

可是删除了远程分支依旧存在,所以,我们可以使用指令git remote show origin是可以看到远端和本地分支的关系的,那么使用命令git remote prune origin就可以删除了,因为Prune是剪的意思:

 


多人协作二

对于多人协作一我们已经清楚了,简单总结为什么会出现合并冲突,因为两个开发者在同一条分支上,所以就会导致合并冲突,那么多人协作二是创建两条分支,也就是开发者1拥有自己的分支,开发者2也拥有自己的分支:

所以我们自然是需要在远端先创建两条分支的:

此时创建好了,那么老操作,在Linux环境下使用分支dev1,并且进行连接:

Windows环境同理:

此时,环境就配置好了,那么首先是开发者1,创建一个文档file1.txt并写入:

开发者1的工作完成,然后是开发者2:

两边的工作都完成了。此时就要对远端进行操作了。

可是此时,开发者2的代码好像差点意思,刚好又回家了,所以还在办公室苦苦加班的你,要负责剩余部分的开发工作了,那么如何切换到另一个分支呢?

需要pull即可:

那么修改对应的文件:

好了,重新三部曲就可以了:

此时查看远端情况:

工作都是完成了的,那么就要和master进行merge操作了,同样,先切换到master分支,pull一下,然后切换回去,dev合并master,master再合并dev即可:

此时,dev1的情况就完成了,dev2同理:

这个界面代表车成功。


感谢阅读!

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

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

相关文章

2010年国赛高教杯数学建模C题输油管的布置解题全过程文档及程序

2010年国赛高教杯数学建模 C题 输油管的布置 某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。   1. 针对两炼…

基于SpringBoot农场管理平台【附源码】

基于SpringBoot农场管理平台 效果如下: 系统首页界面 系统注册页面 农业生产资料详细页面 个人中心界面 管理员登录界面 管理员主界面 用户管理界面 资料分类管理界面 方法分类管理界面 计划分类管理界面 农业生产资料管理界面 研究背景 农业是人类社会发展的基石…

实现vlan间的通信

方法一:单臂路由 概述 单臂路由是一种网络配置,它允许在路由器的一个物理接口上通过配置多个子接口来处理不同VLAN的流量,从而实现VLAN间的通信。 原理 路由器重新封装MAC地址,转换Vlan标签 基础模型 1、配置交换机的链…

【openGL学习笔记】----GLFW、GLAD环境配置

glew、glad、freeglut、glfw的区别? glew(The OpenGL Extension Wrangler Library)是对底层OpenGL接口的封装,可以让你的代码跨平台。glad与glew作用相同,可以看作它的升级版。Freeglut(OpenGL Utility To…

H5开发指南|掌握核心技术,玩转私域营销利器

随着互联网技术的不断发展和用户需求的日益增长,H5页面逐渐成为了企业和个人展示信息、吸引用户关注的重要手段。具有跨平台兼容性强、网页链接分享、更新迭代方便快捷、低开发成本、可搜索和优化、数据分析与追踪、灵活性与扩展性以及无需下载安装等特点。不仅可以…

pico+Unity交互开发——触碰抓取

一、VR交互的类型 Hover(悬停) 定义:发起交互的对象停留在可交互对象的交互区域。例如,当手触摸到物品表面(可交互区域)时,视为触发了Hover。 Grab(抓取) 概念&#xff…

Redis 三 Redis分布式锁

Redis 实战应用 文章目录 Redis 实战应用Redis 实现全局唯一IDRedis解决购物秒杀思路超卖问题一人一单集群并发的问题分布式锁Redis分布式锁的实现核心思路实现分布式锁版本一Redis分布式锁误删情况Redis分布式锁原子性问题 Redis 实现全局唯一ID 全局ID生成器,是一…

【排序】——1.冒泡排序法(含优化)

冒泡排序 1.原理 左边大于右边交换一趟排下来最大的交换到右边来(接下来所以文章用升序举例) 从左到右,相邻元素进行比较。 每次比较一轮,就会找到序列中最大的一个(最小的一个——降序)。这个数就会从序列的最右边冒出来。 以…

NetSarang Xshell v8.0060 Linux终端管理器个人免费版

NetSarang Xshell 官方个人完全免费中文版,Xshell特别版,Xshell 个人完全免费,Xshell 是一款最好用的Linux远程连接工具,免费SSH客户端、主机服务器远程管理客户端 。Xshell,轻松管理远程服务器,会话管理器…

16进制数据如何得到奇偶校验位??

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&am…

详解mac系统通过brew安装mongodb与使用

本文目录 一、通过brew安装MongoDB二、mongodb使用示例1、启动数据库2、创建/删除数据库3、创建/删除集合 三、MongoDB基本概念1)数据库 (database)2)集合 (collection)3) 文档(document)4)mong…

海博思创神秘股东捡漏入股,是否存利益输送?关联交易信披不一致

作者:Eric 来源:IPO魔女 今日,北京海博思创科技股份有限公司(简称海博思创)上会,将冲刺科创板。海博思创是储能设备生产集成商,处于产业链的中游,主要产品为电化学储能系统。 IPO魔…

护眼台灯横评:书客、柏曼、明基哪款使用体验好,又能护眼?

如果你使用过护眼台灯,就太能理解为什么护眼台灯会诞生了。护眼台灯确实有一定的护眼作用,光线柔和不刺眼,许多护眼台灯还有智能调光、定时休息等人性化功能。在当今这个数字化时代,长时间面对电脑屏幕或埋头于书本已成为许多人的…

美国的云服务器什么价格能买到?

美国的云服务器什么价格能买到?美国的云服务器价格月租费用一般在70元至数千元人民币不等,基础配置的云服务器月租金可能在20至50美元之间,而高端配置的云服务器月租金可能达到150至500美元。美国的云服务器价格因多个因素而异,包…

web前端网页用户注册页面

源码&#xff1a; <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用户注册</title> </head> <body><form action"#" metho…

2. MySQL数据库基础

一、数据库的操作 1. 显示当前的数据库 SHOW DATABASES;2. 创建数据库 语法&#xff1a; CREATE DATABASE [IF NOT EXISTS] db_name [create_specification...];//create_specification包括&#xff1a;[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_n…

TemporalBench:一个专注于细粒度时间理解的多模态视频理解的新基准。

2024-10-15&#xff0c;由威斯康星大学麦迪逊分校、微软研究院雷德蒙德等机构联合创建了TemporalBench&#xff0c;它通过大约10K个视频问答对&#xff0c;提供了一个独特的测试平台&#xff0c;用以评估各种时间理解和推理能力&#xff0c;如动作频率、运动幅度、事件顺序等。…

物联网的应用以及优势

物联网智能项目涵盖了多个行业领域&#xff0c;随着技术的不断进步和普及&#xff0c;越来越多的应用案例成为主流趋势。此篇文章将概述一些主要的物联网智能项目类别及其优势和日常使用场景&#xff1a; 主流物联网智能项目 1. 智能家居: •优势: 提升居住体验&#xff0c;…

倍福TwinCAT程序中遇到的bug

文章目录 问题描述&#xff1a;TwinCAT嵌入式控制器CX5140在上电启动后&#xff0c;X001网口接网线通讯灯不亮&#xff0c;软件扫描不到硬件网口 解决方法&#xff1a;硬件断电重启后&#xff0c;X001网口恢复正常 问题描述&#xff1a;TwinCAT软件点击激活配置后&#xff0c;…

CUDA 全局内存

全局内存在片外。 特点是&#xff1a;容量最大、延迟最大、使用最多 全局内存中的数据是所有线程可见的&#xff0c;Host端可见&#xff0c;且具有与程序相同的生命周期 动态全局内存 主机代码使用CUDA运行时API &#xff1a; cudaMalloc 声明内存空间&#xff1b; cudaFree…