Git多人协作开发

news2024/12/29 10:56:26

1、创建分支(在码云上)

(1)在本地查看我们本地指向远程的分支:git branch -r

(2)我们在码云上新建了个dev分支,我们将dev分支拉取到本地:git pull

(3)展示我们的本地分支和远程分支:git branch -a

(4)不能直接对远程我们新建的dev分支进行修改:我们应该在本地新建一个dev并指向远程的dev分支:git checkout -b dev origin/dev

(5)查看我们本地分支跟远程分支建立的联系:git branch -vv

(6)将本地分支和远程分支建立连接:git branch --set-upstream-to=origin/dev dev(第二个dev是本地,第一个是远程)

(7)当我们的开发者一和开发者二都对分支进行更改提交之后会有冲突:

(7.1)先拉下远程仓库分支:git pull

(7.2)打开我们拉下来的文档进行更改

(7.3)然后对我们更改在推送至远程

2、将我们更改后的dev分支合并到我们的主分支上

(1)PR(提交申请单):

(1.1)合并2分支为了避免冲突,首先将2分支合并master,冲突在2分支上解决掉不能影响master分支

(1.2)合并分支时候我们的2分支直接进行和master合并就行(用码云上合并分支申请)

(1.3)合并1分支为了避免冲突,首先将1分支合并master,冲突在1分支上解决掉不能影响master分支

(1.4)然后进行和master合并即可

(1.5)在本地进行合并的时候要首先确保master是不是最新的,不是最新的我们要进行pull一下

(1.6)合并完之后ctrl + X退出即可

(1.7)进行add..push操作 

(1.8)如果没有进行本地分支对远程分支的指向(不能push)我们就要用:git push origin feature-1 这个操作来提交到远程仓库(然后到远程仓库进行提交表单操作)

(2)主要针对本地操作(多人协作单分支场景):

(2.1)git pull(拉下远程仓库的master)

(2.2)dev merge master(有冲突在dev上解决)

(2.3)master merge dev

(2.4)push master

(2.5)操作完成就可以在码云上删除我们创建的dev分支了

(3)多人协作开发(不同分支):

(3.1)远程创建分支(推荐)因为分支内容最新

(3.2)本地创建分支:

(3.2.1)创建本地分支(git checkout -b 分支名字)

(3.2.2)因为我们创建的分支没有对应的远程分支指向,所以我们不能直接进行push操作,我们可以git push origin 分支名,在远程创建一个分支(内容也随之带了上来),也可以用上个博客的两个代码来修改分支指向

4、多人协作(当我们的开发伙伴开发到一半需要我们继续他的开发):

(1)git pull:将我们的远程仓库内伙伴的分支拉到我们本地上来

(2)git checkout -b 本地新建分支名 origin/远程仓库分支名(建立并绑定连接)

(3)写完之后 add commit push

(4)当我们的伙伴回来后他需要

(4.1)需要先利用上一个博客的方法建立连接

(4.2)git pull操作将我们更改后的内容拉到他的本地上去

(4.3)写完之后进行add等操作

(4.4)在我们的码云上进行审核

5、当我们在远程仓库删除之我们在本地仓库获取分支之后依旧可以看到我们远程仓库已经删除的分支:(查看本地分支状态:git branch -a)

(1)查看远程分支状态:git remote show origin(分支显示stale就表明显示陈旧状态可以删除)

(2)删除陈旧(已删除)分支:git remote prune origin

6、Git Flow模型(不适用于所有)

分支名称使用环境
master主分支生产环境
release预发布分支预发布/测试环境
develop开发分支开发环境
feature需求开发分支本地
hotfix紧急修复分支本地

(1)master:主分支,一般由合并release分支得到,不允许直接在master分支上写,分支不可删除,用于对外发布

(2)release:基于本次线上所有的feature分支合并到develop分支之后,基于develop分支创建,可部署到预发布集群,属于临时分支,产品上线后可删除(版本加日期 release/1.0_日期)

(3)develop:基于master创建的只读且唯一分支,始终保持最新完成以及bug修复后的代码,可部署到开发环境对应的集群,一般由feature分支合并

(4)feature:新功能开发分支,以develop分支为基础创建,命名以feature/开头,开发完成后合并到develop分支上,合并后将该分支删除(名字_日期_pay)

(5)hotfix:需要基于master分支创建该分支,需要合并master分支和develop分支并推送至远程,一旦修复上线将其删除

7、企业级项目管理

(1)DevOps研发平台

(2)创建项目(敏捷项目)

(3)点击代码->新建仓库

(4)我选择的是  生产/开发模型(支持master/develop类型分支)

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

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

相关文章

2.1K Star微软开源的高质量 iot库

功能描述 该项目是一个开源的 .NET Core 实现,旨在帮助开发者构建适用于物联网(IoT)设备和场景的应用程序。它提供了与传感器、显示器和输入设备等相互作用所需的 GPIO 引脚、串口等硬件的接口。该仓库包含 System.Device.Gpio 库以及针对各种板卡(如 Ra…

学习51单片机 C语言知识

一、数据类型 C 语言包含的数据类型如下图所示 C51 的数据类型分为基本数据类型和组合数据类型,情况与标准 C 中的数据类型基本相同,但其中 char 型与 short 型相同,float 型与 double 型相同,另外,C51 中还有专门针…

大多企业搞错了!TRIZ的培训不是目的,应用才是

近年来,企业对于员工的培训投入越来越大,尤其是在引入TRIZ等先进方法论方面。然而,许多企业在实施过程中却陷入了一个误区:将培训本身视为目的,而非将其应用于实际工作和问题解决中。天行健六西格玛培训公司解析如下&a…

【未完成】【QT+OpenCV】车牌号检测 学习记录 遇到的问题

【QTOpenCV】车牌号检测 学习记录 首先在QT里面配置好OpenCV .pro文件中加入: INCLUDEPATH G:/opencv/build/include LIBS -L"G:/opencv/build/x64/vc14/lib"\-lopencv_core \-lopencv_imgproc \-lopencv_highgui \-lopencv_ml \-lopencv_video \-lo.c…

Python 全栈安全(三)

原文:annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者:飞龙 协议:CC BY-NC-SA 4.0 第十一章:OAuth 2 本章内容 注册 OAuth 客户端 请求对受保护资源的授权 授权而不暴露身份验证凭据 访问受保护的资源 OAuth …

Python 全栈安全(四)

原文:annas-archive.org/md5/712ab41a4ed6036d0e8214d788514d6b 译者:飞龙 协议:CC BY-NC-SA 4.0 第十五章:内容安全策略 本章涵盖 使用 fetch、navigation 和 document 指令编写内容安全策略 使用 django-csp 部署 CSP 使用报…

【C++】学习笔记——类和对象_3

文章目录 二、类和对象11. 析构函数(补)12. 拷贝构造函数13. 运算符重载 未完待续 二、类和对象 11. 析构函数(补) 析构函数并不是销毁对象,对象的销毁是由编译器完成的,析构函数的作用是清理&#xff0c…

java-Spring-bean的生命周期

定义 程序中的每个对象都有生命周期,对象的创建、初始化、应用、销毁的整个过程称之为对象的生命周期; 在对象创建以后需要初始化,应用完成以后需要销毁时执行的一些方法,可以称之为是生命周期方法; 在spring中&…

<计算机网络自顶向下> 可靠数据传输的原理

可靠数据传输(rdt:Reliable Data Transfer)的原理 rdt在应用层,传输层和数据链路层都很重要是网络TOP10问题之一信道的不可靠特点决定了可靠数据传输rdt的复杂性rdt_send: 被上层(如应用层)调用&#xff0…

AI安全之问:我们的智能助手真的安全吗?

在我们日益依赖人工智能来撰写文档、编写程序代码、甚至创作艺术作品的今天,我们是否曾经想过这些智能系统可能面临的被恶意操纵的风险? 分享几个网站 GPT-3.5研究测试: https://hujiaoai.cn GPT-4研究测试: https://higpt4.cn…

【数据结构项目】通讯录

个人主页点这里~ 原文件在gitee里~ 通讯录的实现 基于动态顺序表实现通讯录项目1、功能要求2、代码实现file.hfile.cList.hList.ctest.c 基于动态顺序表实现通讯录项目 准备:结构体、动态内存管理、顺序表、文件操作 1、功能要求 ①能够存储100个人的通讯信息 ②…

刷代码随想录有感(41):二叉树最小深度

题干: 代码: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), …

CK_Label_V1

CK_Label_v1(电池版) 产品型号 CK_Label_v1 尺寸 37*65*33.7mm 按键 1 指示灯 1 RGB灯(红/绿/蓝/黄/紫/白/青) 外观颜色 白色 供电方式 5号干电池供电1800mAh,可更换电池 通信方式 无线通信 合规认证 CE, RoHS 工作温度 …

FebHost:CC域名商业和非商业使用的区别

在当今互联网的世界中,域名的选择不仅关乎一个网站的在线身份,更与其背后的商业策略紧密相连。.cc 顶级域(TLD)作为众多选择之一,其使用方式可分为商业和非商业两大类。 商业用途:当提及.cc域名的商业用途…

使用yum安装pt-query-digest 并分析MySQL慢查询日志

查看慢SQL日志 1、查看慢日志设置 show variables like slow_query_log%; 2、设置慢日志开关 -- 关闭 SET GLOBAL slow_query_log OFF; -- 开启 SET GLOBAL slow_query_log ON; 3、查看慢日志阈值,即SQL执行时间超过阈值后,才会记录在慢日志文件中 …

Springboot的Test单元测试操作

Springboot的Test单元测试操作 简单总结需要操作的步骤 1&#xff0c;导入依赖 2&#xff0c;创建目录&#xff08;目录和启动类的目录保持一致&#xff09; 3&#xff0c;添加注解 4&#xff0c;写方法测试 1&#xff0c;导入依赖 <dependency><groupId>org.spri…

春游江淮 请来池州 | 3天2晚 您的专属高铁游线路来啦

“快乘高铁 趣游池州”3天2晚高铁游主题线路来喽! 各位旅客朋友请注意,连接九华山、黄山、太平湖“两山一湖”的“黄金旅游线”池黄高铁已进入开通倒计时! 本次列车共设池州、九华山、黄山西、黟县东4站。始发站池州,趁着春意正浓,和我们一起快乘高铁,趣游池州吧! DAY1 上午…

冒泡排序c++

题目描述 编程输入n(1≤n≤20)个小于1000非负整数&#xff0c;然后自动按从大到小的顺序输出。&#xff08;冒泡排序&#xff09; 输入 第一行&#xff0c;数的个数n; 第二行&#xff0c;n个非负整数。 输出 由大到小的n个非负整数&#xff0c;每个数占一行。 样例输入 …

使用 kubeadm 进行证书管理

使用 kubeadm 进行证书管理 一&#xff1a;使用 kubeadm 进行证书管理 1.检查证书是否过期 kubeadm certs check-expiration 2.手动续订证书 使用 kubeadm certs renew 命令 可以随时手动续订证书&#xff0c;该命令使用存储在/etc/kubernetes/pki中的 CA (or front-proxy-…

【JVM常见问题总结】

文章目录 jvm介绍jvm内存模型jvm内存分配参数jvm堆中存储对象&#xff1a;对象在堆中创建分配内存过程 jvm 堆垃圾收集器垃圾回收算法标记阶段引用计数算法可达性分析算法 清除阶段标记清除算法复制算法标记压缩算法 实际jvm参数实战jvm调优jvm常用命令常用工具 jvm介绍 Java虚…