当前位置: 首页 > news >正文

团队项目开发使用git工作流(IDEA)【精细】

目录

开发项目总体使用git流程

图解流程

1.创建项目仓库[组长完成]

2. 创建项目,并进行绑定远程仓库【组长完成】

3.将项目与远程仓库(gitee)进行绑定

3.1 创建本地的git仓库

3.2 将项目添加到缓存区

3.3 将项目提交到本地仓库,并推送到远程仓库上

4.在远程仓库上创建不同组员分支和主要分支:【组长或组员完成】

4.1 创建主要分支(dev):

5. 提交代码的流程

5.1 组员李四的开发流程

5.2 组长张三合并分支

5.2.2 组长张三拉取远程ls分支的最新代码合并到本地的dev中

5.2.3 将本地dev分支推送到远程dev分支

5.2.4 其他组员拉取最新代码


开发项目总体使用git流程

前置条件:

        1.项目团队为多人(本开发项目使用git流程案例为3人团队)

        2. gitee平台上有一个代码仓库,用于存储项目代码

        3. 仓库中有不同人的分支,外加一个主要分支dev(3人分支+dev分支=4个分支)        


流程:

        1.首先我们团队有3人(张三,李四,王五),分别对应三个分支(分支名称:zs,ls,ww)

        2.这3个人当中有一个是项目组组长(张三),组长是用来操作主要分支和自己的分支,也就是dev分支与zs分支,其余人操作各自的分支就行,组长负责自己的分支,与dev分支

        3.dev分支作用用于合并不同组员开发的不同功能代码,也就是最新代码

        4.一开是不同组员都在开发不同的功能代码,当第一个组员(李四)开发完成后,先将dev最新代码拉取到(pull)李四本地的分支上(ls)来保证自己的代码是最新的,然后再将代码提交到自己的远程分支(ls)上【本地分支与远程分支(gitee平台上的分支)】 (组员做的事情

        

        5.这时候组员(李四)告诉组长(张三),我的功能已经开发完成了,组长(张三)知道了后,切换到主要分支(dev)分支,将张三的分支(zs) 拉取到(pull)dev上,这时候的dev是最新的代码,接着如果有其他组员需要提交一定先从远程dev获取最新代码在进行提交(组长要做的事情)

图解流程

1.创建项目仓库[组长完成]

     

2. 创建项目,并进行绑定远程仓库【组长完成

3.将项目与远程仓库(gitee)进行绑定

3.1 创建本地的git仓库

3.2 将项目添加到缓存区

3.3 将项目提交到本地仓库,并推送到远程仓库上

查看远程仓库:(刷新)

远程仓库绑定成功


4.在远程仓库上创建不同组员分支和主要分支:【组长或组员完成

4.1 创建主要分支(dev):

4.2 创建小组成员的分支(zs【张三】,ls【李四】,ww【王五】)

组长张三分支(zs):

组员李四分支(ls):

组员王五分支(ww): 

返回仓库查看分支:

远程仓库创建分支完成


5. 提交代码的流程

前面已经把一个准备工作完成了,现在演示不同组员开发完成之后的一个流程

5.1 组员李四的开发流程

5.1.1  首先更新项目将分支更新一下

更新发现现在有了远程创建的所有分支

5.1.2 切换到李四的分支(ls)

只需要操作自己的分支 :【组员】               

                1.【组员】是谁,就需要切换自己的分支,比如:李四就切换到ls自己的分支,王五就切换到王五自己的分支,组员只需要操作自己的分支就可以了


操作两个分支,自己的分支和dev分支: 【组长】               

                2. 【组长】就需要操作两个分支了,因为组长需要将组员开发的代码合并到dev分支,也就是主要分支,来保证其他组员包括自己的代码在开发完成后,能够获取最新的代码,组长也有自己的分支,比如张三是组长,他也也要开发项目,所以张三也要操作zs这个分支,但是他还有一个职责就是合并其他组员开发后的代码,而dev是最新代码的分支,所以要将其他组员开发过后的代码合并到dev分支上,张三就还要操作dev分支


总结:     组员只需要操作自己的分支,组长需要操作自己的分支和dev分支

 5.1.3 组员李四进行一个项目开发

                创建controller包,并创建一个类LiSiController

5.1.4 将自己的代码提交到主要分支(dev)

                假设组员李四已经完成了开发,现在就要提交代码到远程分支

提交步骤: [李四组员的提交]

                1. 首先将李四自己开发的代码提交到本地暂存区

                2. 从dev获取最新代码,更新到李四自己的分支(不管dev有没有新代码【强制】)

                3. 最后将李四自己开发的代码提交到本地仓库,并提交到远程仓库


总体流程:

        组员李四开发代码完成---------->将代码提交到本地仓库的暂存区------------------>从远程dev分支获取最新代码合并到ls自己的分支----------------->提交代码到本地仓库ls分支上,并将代码提交到远程仓库ls分支上

1. 首先将李四自己开发的代码提交到本地暂存区

2. 从远程dev获取最新代码,更新到李四自己的本地ls分支上(不管远程dev有没有新代码【强制】)

不管远程dev有没有最新的代码,都pull一下,这样可以保证不会出错

这里是从远程dev 分支获取最新代码:

3. 最后将李四自己开发的代码提交到本地仓库ls分支上,并提交到远程仓库ls分支上

 查看一下远程仓库:

查看一下本地仓库的提交:

这个时候组员李四一个操作流程就ok了,他只需要将自己的代码提交到本地仓库,在将自己的代码提交远程自己的分支就行了,组员李四在告诉一下组长,自己已经提交了新的功能,让组长合并一下最新代码到dev,合并完成了之后,其他组员如果开发完成了,则先提交自己的代码到本地的暂存区,然后从【远程】dev拉取最新代码到组员自己的分支上,最后在提交到dev分支,整体都是这样一个流程

组员李四提交完成!!!


5.2 组长张三合并分支

上面组员李四提交自己的代码到远程分支ls上,但远程dev并没有组员李四最新的代码,这个时候组长张三就需要将这个远程ls分支中的代码合并到远程dev分支上,来保证其他组员可以获取最新的代码

5.2.1 组长张三切换到dev分支

发现并没有组员李四提交的最新代码:

5.2.2 组长张三拉取远程ls分支的最新代码合并到本地的dev中

上面本地的dev已经有了李四开发后的最新代码了,但是这最新的代码只是存在本地上,远程仓库的dev分支还并没有李四开发后的最新代码,所以其他组员并不能拉取最新的代码,我们需要将这个最新的代码推送到远程dev分支上

5.2.3 将本地dev分支推送到远程dev分支

查看远程dev分支:

远程分支记录是不是有李四的提交记录了

当组长合并代码完成后就可以不用管dev分支了,在切回组长自己的分支zs继续开发代码

5.2.4 其他组员拉取最新代码

组员王五拉取最新代码,先切换ww分支

远程dev分支获取最新代码到本地ww分支 

本地ww分支有了其他组员开发的最新代码了


最后总结:

          1. 组长操作两个分支,一个是自己的分支,一个是dev分支,自己的分支用于开发代码,dev分支用于合并其他组员远程分支上的代码包括自己的远程分支上的代码,但这时候的合并只是合并到本地的dev分支上,接着要将合并好的本地dev分支推送到远程的dev分支上,这样组员才能从远程的dev拉取最新的代码到自己的本地分支上


           2. 组员操作1个分支,先从远程dev分支获取最新代码合并到自己的本地分支上,然后在提交本地分支和远程分支就可以了

 

相关文章:

团队项目开发使用git工作流(IDEA)【精细】

目录 开发项目总体使用git流程 图解流程 1.创建项目仓库[组长完成] 2. 创建项目,并进行绑定远程仓库【组长完成】 3.将项目与远程仓库(gitee)进行绑定 3.1 创建本地的git仓库 3.2 将项目添加到缓存区 3.3 将项目提交到本地仓库&#…...

爬虫案例实战

文章目录 一、窗口切换实战二、京东数据抓取 一、窗口切换实战 案例实战:使用selenium实现打开百度和腾讯两个窗口并切换 知识点:用到selenium中execute_script()执行js代码及switch_to.window()方法 全部代码如下: import time import war…...

uniapp uni-popup内容被隐藏问题

今天开发新需求的时候发现uni-popup 过一会就被隐藏掉只留下遮罩(css被更改了),作者进行了如下调试。 1.讲uni-popup放入其他节点内 失败! 2.在生成dom后在打开 失败! 3.uni-popup将该节点在包裹一层 然后将统计设置样式,v-if v-s…...

leetcode155 最小栈

题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。i…...

在Ubuntu乌班图上安装Docker

最近在学习乌班图相关的内容,找了一些文档安装的都是报错的,于是记录一下学习过程,希望也能帮助有缘人,首先查看乌班图的系统版本,我的是如下的: cat /proc/version以下是在Ubuntu 20.04版本上安装Docker。…...

【Redis数据库百万字详解】数据持久化

文章目录 一、持久化1.1、什么是持久化1.2、持久化方式1.3、RDB优缺点1.4、AOF优缺点 二、RDB持久化触发机制2.1、手动触发2.2、自动触发 三、RDB持久化配置3.1、配置文件3.2、配置查询/设置3.3、禁用持久化3.4、RDB文件恢复 四、RDB持久化案例4.1、手动持久化4.2、自动持久化案…...

echarts legend. icon的展示

默认展示 icon展示circle圆形rect矩形roundRect圆角矩形triangle三角形diamond菱形pin水滴arrow箭头none不显示...

PHPstudy情况下上传图片马需要的.htaccess文件

网上的方法是无效的&#xff1a; <FilesMatch "test.jpg">SetHandler application/x-httpd-php</FilesMatch>原因是新版本的phpstudy使用了cgi模式,而网上的方法只适用于linux模式。 <FilesMatch "tpm.png"> AddHandler fcgid-script …...

基于最大重叠离散小波变换的PPG信号降噪(MATLAB 2018)

光电容积脉搏波PPG信号结合相关算法可以用于人体生理参数检测&#xff0c;如血压、血氧饱和度等&#xff0c;但采集过程中极易受到噪声干扰&#xff0c;对于血压、血氧饱和度测量的准确性造成影响。随着当今社会医疗保健技术的发展&#xff0c;可穿戴监测设备对于PPG信号的质量…...

Gradio中Button用法及事件监听器click方法使用

Gradio中Button用法及事件监听器click方法使用 瞎想乱记 事情是这样的&#xff1a;入职时面试的是Java&#xff0c;简历中写了会python&#xff0c;刚好最近有个小项目需要用Python实现&#xff0c;老板就将这个项目交给了我&#xff0c;我… 项目中还真遇到了好几个坑&#…...

【Qt秘籍】[005]-Qt的首次邂逅-创建

一、如何创建文件&#xff1f; 当我们打开Qt Creator&#xff0c;你会发现整个界面类目繁多。现在&#xff0c;让我们直接开始新建一个项目。 1.点击左上角的“文件”>点击“新建文件或项目” 2.如图&#xff0c;选择“Application”>“Qt Wifgets application”> “…...

亚信安慧AntDB:值得信任的数据产品

AntDB的一个显著特点是其高度的容错性和可靠性。AntDB采用了先进的冗余和备份机制&#xff0c;确保在面对硬件故障或系统异常时仍能保持数据的完整性和可用性。这种稳定性不仅为运营商的核心业务提供了持久的保障&#xff0c;也提升了用户的信任和满意度。 AntDB的容错性和可靠…...

超越传统AI 新型多智能体系统MESA,探索效率大幅提升

探索多智能体强化学习的协同元探索 —— MESA 算法深度解读在多智能体强化学习&#xff08;MARL&#xff09;的征途中&#xff0c;如何高效探索以发现最优策略一直是研究者们面临的挑战。特别是在稀疏奖励的环境中&#xff0c;这一问题变得更加棘手。《MESA: Cooperative Meta-…...

[SWPU 2019]神奇的二维码、buuctf部分web题

目录 [SWPU 2019]神奇的二维码 [LitCTF 2023]Http pro max plus [SWPUCTF 2021 新生赛]finalrce ​[鹏城杯 2022]简单包含 [SWPUCTF 2022 新生赛]ez_ez_php(revenge) [GKCTF 2020]cve版签到 cve-2020-7066&#xff1a; [SWPU 2019]神奇的二维码 解码看看&#xff0c;是…...

Python正则表达式匹配中文:深入解析与实战应用

Python正则表达式匹配中文&#xff1a;深入解析与实战应用 在Python编程中&#xff0c;正则表达式是一种强大的工具&#xff0c;它可以用来处理和分析字符串数据。对于需要处理包含中文字符的文本数据的场景&#xff0c;掌握如何使用正则表达式匹配中文就显得尤为重要。本文将…...

实例Python对比两个word文档并找出不同

首先确保已经有了安装包docx 与 difflib&#xff0c;如果没有先用pip命令安装如下 pip install python-docx案例代码 import docx import difflib import os 在文件目录中存在两个待对比的word文档,必须是docx格式 # 获取文档对象 # path input(请输入文件目录&#xff1a;…...

2.1 QT随手简记(三)

新建QT工程 1.方法 第一种&#xff1a;点击new project按钮&#xff0c;弹出对话框&#xff0c;新建即可 第二种&#xff1b;点击文件菜单&#xff0c;选择新建文件或者工程 2.QT工程文件介绍 (1).pro文件 --》QT工程配置文件 QT …...

TechM-技术网站

介绍 你将为⼀个技术社区设计并实现⼀个官⽹。该社区旨在为软件⼯程师、开发⼈员和技术 爱好者提供⼀个交流平台&#xff0c;分享最新的技术动态、⽂章、项⽬案例。 项目模块 项目分为三个模块 &#xff1a; 主页展示模块&#xff0c;文章详情模块&#xff0c;文章专栏模块…...

SpringBoot: 使用GraalVM编译native应用

曾今Go语言里让我最艳羡的两个特性&#xff0c;一个是Goroutine&#xff0c;一个是native编译。 Java 21的虚线程实现了类似Goroutine的能力。Spring Boot 3.x开始提供了GraalVM的支持&#xff0c;现在Spring Boot也能打包成native文件了。 这一篇文章的目标是用一个案例讲解如…...

9. MySQL事务、字符集

文章目录 【 1. 事务 Transaction 】1.1 事务的基本原理1.2 MySQL 执行事务的语法和流程1.2.1 开始事务1.2.2 提交事务1.2.3 回滚&#xff08;撤销&#xff09;事务实例1&#xff1a;一致性实例2&#xff1a;原子性 【 2. 字符集 和 校对规则 】2.1 基本原理2.2 查看字符集查看…...

为什么要学习数据结构和算法

前言 控制专业转码学习记录&#xff0c;本科没学过这门课&#xff0c;但是要从事软件行业通过相关面试笔试基础还是要打牢固的&#xff0c;所以通过写博客记录一下。 必要性 1.越是厉害的公司&#xff0c;越是注重考察数据结构与算法这类基础知识 2.作为业务开发&#xff0c…...

CANoe仿真工程Switch控件关联dbc信号出现的问题及解决思路

小白学习CANoe仿真&#xff0c;参考CANoe-第2个仿真工程-XVehicle—1总线数据库设计&#xff08;思路&#xff09;_canoe vehicle-CSDN博客 CANoe-第2个仿真工程-XVehicle1总线数据库设计&#xff08;操作&#xff09;_canoe factor 参数什么意思-CSDN博客CANoe-第2个仿真工程…...

用开源模型MusicGen制作六一儿童节专属音乐

使用的是开源模型MusicGen&#xff0c;它可以根据文字描述或者已有旋律生成高质量的音乐(32kHz)&#xff0c;其原理是通过生成Encodec token然后再解码为音频&#xff0c;模型利用EnCodec神经音频编解码器来从原始波形中学习离散音频token。EnCodec将音频信号映射到一个或多个并…...

Ps:批处理

Ps菜单&#xff1a;文件/自动/批处理 Automate/Batch 批处理 Batch命令可以对一个文件夹中的文件执行事先创建的动作 Actions&#xff0c;从而快速地完成大量的重复性操作&#xff0c;提升工作效率。 提示 1&#xff1a; 可以从 Adobe Bridge 中调用 Photoshop 的批处理命令。 …...

前端框架中的虚拟DOM和实际DOM之间的关系

聚沙成塔每天进步一点点 本文回顾 ⭐ 专栏简介前端框架中的虚拟DOM和实际DOM之间的关系1. 实际DOM&#xff08;Real DOM&#xff09;1.1 定义1.2 特点 2. 虚拟DOM&#xff08;Virtual DOM&#xff09;2.1 定义2.2 特点 3. 虚拟DOM的工作流程3.1 创建虚拟DOM3.2 比较虚拟DOM&…...

MySQL进阶——SQL性能分析

在上篇文章我们学习了MySQL进阶——存储引擎&#xff0c;这篇文章学习MySQL进阶——SQL性能分析。 SQL性能分析主要是从SQL语句执行频率、耗时时间、CPU使用情况和执行时表连接情况进行分析&#xff0c;常用的方法工具有&#xff1a;SQL执行频率、慢查询日志、profile详情和ex…...

在RT-Thread下为MPU手搓以太网MAC驱动-4

文章目录 MAC驱动里面对MDIO的支持MAC驱动与MDIO总线 这是个人驱动开发过程中做的一些记录&#xff0c;仅代表个人意见和理解&#xff0c;不喜勿喷 MAC驱动需要支持不同的PHY芯片 MAC驱动里面对MDIO的支持 在第一篇文章中提到对MAC设备做出了抽象&#xff0c;其中MAC抽象里面有…...

可的哥(Codigger)推出Monaco编辑器插件,提升编程体验

Monaco编辑器&#xff0c;作为业界领先的代码编辑器&#xff0c;在编程体验中发挥着不可或缺的重要作用&#xff0c;能够在多种编程语言和开发环境中表现出色&#xff0c;为开发者提供高效、便捷的编程环境。可的哥&#xff08;Codigger&#xff09;在应用商店上线Monaco编辑器…...

为什么选择mobx

对于React而言&#xff0c;大家熟能而详的是redux&#xff0c;但我们的项目用的是mobx&#xff0c;接下来就让我给你详细说下它的优势和不足&#xff0c;可以参考。 MobX是什么&#xff1f; MobX 是一种简单易用的状态管理库&#xff0c;它采用基于观察者的模式&#xff0c;可…...

如何解决段转储问题

非常恶心 &#xff0c;这个问题困了我一个月&#xff0c;怀疑过代码有问题 &#xff0c;怀疑过数据集没处理好&#xff0c;怀疑过环境没有配置好&#xff0c;尝试改动&#xff0c;跑过很多次&#xff0c;还是段转储报错卡住。。。 然后一个月荒废&#xff0c;打算放弃这个模型…...

像wordpress之类的框架/企业培训课程表

遇到的问题 今天项目中引入一个.less类型的文件&#xff0c;前台使用Ajax请求的时候发现无法拿到数据&#xff0c;在浏览器中请求了一下发现自动弹出下载文件的对话框&#xff0c;通过查看返回信息发现Response Header中的content-type字段为text/octet-stream,经查阅资料了解…...

wordpress悬浮搜索/网络营销的优势和劣势

Python文本处理尝试 最近打算看CSAPP&#xff0c;GitHub上看到有英语字幕ass源文件&#xff0c;想把字幕提取出来提高学习效率&#xff0c;先把ass文件转成txt文件&#xff0c;发现是这样&#x1f447; 都在Dialogue的后面&#xff0c;打算尝试提取一下 不太熟练&#xff0c;下…...

ps做网站需注意什么/网站推广平台有哪些

题目链接&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1317 【题目描述】 排列与组合是常用的数学方法&#xff0c;其中组合就是从n个元素中抽出r个元素(不分顺序且r≤n)&#xff0c;我们可以简单地将n个元素理解为自然数1&#xff0c;2&#xff0c;…&#xf…...

区政府网站建设方案/最新百度新闻

之前便一直想把它整理出来, 可惜这除了懒就剩下了更懒 , 所以才拖到现在~希望可以对大家有那么一点的帮助~ ---阿鸟 …...

沈阳网站公司排名/灰色行业推广平台网站

修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题参考文章&#xff1a; &#xff08;1&#xff09;修改CKplayer.js 源码解决移动端浏览器全屏不能限制快进的问题 &#xff08;2&#xff09;https://www.cnblogs.com/jying/p/9642445.html 备忘一下。...

英文网站开发公司哪家好/营销型网站的类型

WGS1984基准面采用WGS84椭球体&#xff0c;它是一地心坐标系&#xff0c;即以地心作为椭球体中心&#xff0c;目前GPS测量数据多以WGS1984为基准。 用经纬度表示的是地理坐标系&#xff0c;也称大地坐标系。有时候用地理坐标系不够方便&#xff0c;人们比较习惯于使用平面坐标…...