Git:利用Git模拟企业级项目管理

news2024/11/28 4:27:21

文章目录

  • 基础知识
  • Git分支设计规范
    • master分支
    • release分支
    • develop分支
    • feature分支
    • hotfix分支
  • 模拟进行企业级项目管理

本篇主要总结的是企业级开发模型以及利用Git模拟企业级别的项目管理方式

基础知识

前面已经进行了全部的关于Git的各项操作,那么Git是作用于企业项目管理的,因此了解企业是如何进行项目开发是必要的

软件是如何被做出来的?

软件从无到完备是一个很复杂的过程,一般来说大体可以分为开发人员,测试人员和运维人员,每个阶段需要进行的内容也很繁琐,大体可以用下面这个图总结出来

在这里插入图片描述
也就是说,一个项目想要正式落实下来需要多方面的共同落实,但在实际开发中,开发部门和运维会有比较大的利益冲突,为了避免这样的情况发生,就诞生了新的工具—DevOps

DevOps是由DevelopmentOperations组合起来形成的,主要是用来进行软件开发人员和运维人员之间的沟通合作的平台

系统开发环境的概念

那么作为开发人员来说,在实际的系统开发中有几个比较常用的环境:

  1. 开发环境:日常开发的时候使用的服务器,其中会包含错误报告和一些测试的工具
  2. 测试环境:测试环境主要是将开发环境的代码进行测试的一个阶段,测试后就可以放到生产环境中
  3. 预发布环境:在发布前,为了防止测试环境和线上环境的差异从而增加的一个环境,这个环境主要是用来检测一下到实际的开发环境中会不会出现其他问题,如果没有出现问题就可以提交到正式的生产环境中了
  4. 生产环境:正式对外提供服务的环境

因此,整个流程总结出来就是开发–测试–上线

在这里插入图片描述

Git分支设计规范

前面的几篇文章中对分支的作用和使用方法有了一个明确的理解,从中也可以知道,分支不管对于Git还是对于项目开发的效率来说都有非常重要的作用,那么如何用最安全最高效的方式进行项目的开发就成了一个问题,因此就引出了分支设计规范的问题

正常来说,项目主要有下面的一些分支

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

那么下面对上面的这几个分支进行总结

master分支

  • master分支是一个主分支,并且是只读且唯一的分支,是用来部署到正式的发布环境的,一般是由release分支合并得出来的
  • master分支是最终用来对外发布的,在master分支上的推送都应该打标签做记录,用以追溯

release分支

  • release分支是预发布分支,基于本次上线的所有的feature分支合并到develop分支后创建出来的,可以进行测试和预发布
  • 命名规则一般是release/version_publishtime
  • release分支主要用于提交给测试人员进行测试
  • 如果出现问题,应该回到develop分支查看问题情况
  • release分支属于临时分支

develop分支

  • develop分支是开发分支,基于master分支创建的只读且唯一的分支,始终保持最新完成以及bug修复后的代码,是可以部署到开发环境对应集群

feature分支

  • feature分支通常是为新功能或者新特性开发的分支,一般来说是以develop分支为基础创建feature分支
  • 命名规则:feature/user_createtime_feature
  • 新特性或功能开发完成后,开发人员要合并到develop分支

hotfix分支

  • hotfix主要是线上bug进行修复的分支,也叫补丁分支,是对线上版本进行紧急修复
  • 命名规则:hotfix/user_createtime_hotfix
  • 当问题解决后,需要合并到master分支和develop分支

这样的开发分支有一个名字:Git Flow模型,用下面的图来解释整个流程

在这里插入图片描述

模拟进行企业级项目管理

本次使用的是Gitee上的DevOps平台,用户依旧采用的是WindowsLinux下模拟双用户的身份

经过各项初始化后,在Gitee的平台上创建好了项目,并且使用的是Git Flow模型

在这里插入图片描述
那么下面就在LinuxWindows下模拟两个用户进行实验

首先是Linux下:

# clone仓库到本地
[test@VM-16-11-centos ~]$ git clone https://gitee.com/testfor-git/gitcode.git
Cloning into 'gitcode'...
Username for 'https://gitee.com': 13934573466
Password for 'https://13934573466@gitee.com': 
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (15/15), done.

# 创建分支关联
[test@VM-16-11-centos gitcode]$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/linux_20230917_pay
  remotes/origin/feature/windows_20230917_collection
  remotes/origin/hotfix
  remotes/origin/master
[test@VM-16-11-centos gitcode]$ git checkout -b dev origin/feature/linux_20230917_pay
Branch dev set up to track remote branch feature/linux_20230917_pay from origin.
Switched to a new branch 'dev'
[test@VM-16-11-centos gitcode]$ git branch -vv
* dev    6397e97 [origin/feature/linux_20230917_pay] change readme
  master 74aa30d [origin/master] Remove pay.cpp
[test@VM-16-11-centos gitcode]$ vim pay.cpp
[test@VM-16-11-centos gitcode]$ git add .
[test@VM-16-11-centos gitcode]$ git commit -m "update for pay"

# 提交代码
[test@VM-16-11-centos gitcode]$ git push origin dev:feature/linux_20230917_pay
Username for 'https://gitee.com': 13934573466
Password for 'https://13934573466@gitee.com': 
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 629 bytes | 0 bytes/s, done.
Total 6 (delta 2), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/testfor-git/gitcode.git
   6397e97..13d0b69  dev -> feature/linux_20230917_pay

在这里插入图片描述
此时在Linux分支下就有了提交的记录


下面进行Windows分支下的开发

# 上传代码
PS D:\桌面\gitcode> git add .
PS D:\桌面\gitcode> git commit -m "md collect"
[dev 679037b] md collect
 1 file changed, 6 insertions(+)
 create mode 100644 collect.cpp
PS D:\桌面\gitcode> git branch -a
* dev
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/linux_20230917_pay
  remotes/origin/feature/windows_20230917_collection
  remotes/origin/hotfix
  remotes/origin/master
PS D:\桌面\gitcode> git push origin dev:feature/windows_20230917_collection
info: detecting host provider for 'https://gitee.com/'...
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
info: detecting host provider for 'https://gitee.com/'...
warning: ----------------- SECURITY WARNING ----------------
warning: | TLS certificate verification has been disabled! |
warning: ---------------------------------------------------
warning: HTTPS connections may not be secure. See https://aka.ms/gcmcore-tlsverify for more information.
git: 'credential-manager' is not a git command. See 'git --help'.

The most similar command is
        credential-manager-core
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 322 bytes | 322.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/testfor-git/gitcode.git
   b39ec6a..679037b  dev -> feature/windows_20230917_collection

在这里插入图片描述
此时在Windows分支下也有了对应的代码

再合并到develop分支,方便进行测试和调试

在这里插入图片描述
合并后即可删除分支

在这里插入图片描述
对于Linux下的分支也是一样的操作,这里不进行过多演示,这样结束后都合并到了develop分支下,并且没用的分支也被删除了

在这里插入图片描述
对于没有问题的develop版本就可以合并到release版本,再进行master发布

这样就完成了一个项目大致的流程模拟

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

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

相关文章

<Altium Designer>向PCB导入网表(.NET)

目录 01 AD PCB导入网表(.NET) 添加.NET文件到AD工程 通过show Differences操作导入器件 02 文章总结 大家好,这里是程序员杰克。一名平平无奇的嵌入式软件工程师。 硬件工程师使用的是Cadence的OrCAD画原理图,输出的是.NET网表,而杰克使…

自动化测试---选择框

radio框选择选项&#xff0c;直接用WebElement的click方法&#xff0c;模拟用户点击就可以了。 比如, 我们要在下面的html中&#xff1a; 1.先打印当前选中的老师名字 2.再选择 小雷老师 <div id"s_radio"><input type"radio" name"teach…

在静态方法中访问@Value注入的静态变量!!

一、 静态变量 static修饰的成员变量&#xff0c;称为静态成员变量&#xff0c;静态成员变量最大的特性&#xff1a;不属于某个具体的对象&#xff0c;是所有对象所共享的 简单来说&#xff1a;在某些类的对象中存在一些相同的成员变量&#xff0c;那么这种成员变量就可以设置…

解决VSCode下载速度很慢

这是VSCode的官网&#xff1a; Visual Studio Code - Code Editing. Redefined 按照官网的下载链接&#xff0c;速度实在是感人&#xff01; 解决办法也很简单&#xff0c;把链接换为CDN加速的链接 把下载链接中的az764295.vo.msecnd.net 替换为&#x1f449; vscode.cdn.azu…

MySQL数据库入门到精通1--基础篇(MySQL概述,SQL)

1. MySQL概述 1.1 数据库相关概念 目前主流的关系型数据库管理系统&#xff1a; Oracle&#xff1a;大型的收费数据库&#xff0c;Oracle公司产品&#xff0c;价格昂贵。 MySQL&#xff1a;开源免费的中小型数据库&#xff0c;后来Sun公司收购了MySQL&#xff0c;而Oracle又收…

压电换能器的工作原理和应用(功率放大器)

在日常生活中&#xff0c;可能会遇到很难测量的物理量&#xff0c;例如施加在金属上的机械应力、温度、压力水平等……对于所有这些应用&#xff0c;需要一种能够以我们熟悉的单位和校准来测量这些未知量的设备&#xff0c;而比较常用的设备是换能器。 换能器是一种电气设备&am…

华为OD机试 - 计算面积 - 逻辑分析(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

491. 递增子序列

题目链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路&#xff1a; 注意的点&#xff1a;1.是在原有的序列里找递增的子序列 示例 2&#xff1a; 输入&#xff1a;nums [4,4,3,2,1] 输出&#xff1a;[[4,4]] 记一…

业务上云的容器排障与思考

1 前言 此前我们部门已经完成了业务上云的目标&#xff0c;而随着业务请求量的激增&#xff0c;上云应用系统也面临着一些复杂的故障和挑战。 下文我就结合最近的容器排障工作&#xff0c;跟大家一起探讨如何优化系统的性能、扩展性和容错能力&#xff0c;为读者提供参考和借鉴…

Python从入门到放弃系列教程01

Python从入门到放弃系列教程01 第一章 01 初识Python Python的起源 1989年&#xff0c;为了打发圣诞节假期&#xff0c;吉多范罗苏姆&#xff08;龟叔&#xff09;决定开发一个新的解释程序&#xff08;Python雏形&#xff09;&#xff0c;1991年&#xff0c;第一个Python解…

QT支持的平台

简述&#xff1a; Qt是一个商业和开源许可的跨平台应用程序和UI框架。它由Qt公司与Qt项目社区一起在开源治理模式下开发。 使用Qt&#xff0c;您可以编写一次GUI应用程序&#xff0c;然后将它们部署到桌面&#xff0c;移动和嵌入式操作系统中&#xff0c;而无需重写源代码。 Qt…

【医学影像数据处理】 Dicom 文件格式处理汇总

在医学影像的数据存储领域&#xff0c;是存在一定的行业标准的。X光、CT机器等等医疗器械等生产企业&#xff0c;会依据行业标准&#xff0c;对采集的数据进行规范化的存储。 这里面就包括了大名鼎鼎的DICOM 3.0协议&#xff0c;上述的摄影形式大部分也都是以这种形式进行存储…

Python实战:用多线程和多进程打造高效爬虫

文章目录 &#x1f34b;引言&#x1f34b;为什么要使用多线程和多进程&#xff1f;&#x1f34b;线程的常用方法&#x1f34b;线程锁&#xff08;也称为互斥锁或简称锁&#xff09;&#x1f34b;小案例&#x1f34b;实战---手办网&#x1f34b;总结 &#x1f34b;引言 在网络爬…

【JavaSpring】Aop的通知类型,获取数据

AOP 通知描述了抽取的共性功能&#xff0c;根据共性功能抽取的位置不同&#xff0c;最终运行代码时要将其加入到合理的位置 前置通知 Pointcut("execution(void org.example.dao.BookDao.update())")private void pt() {}Before("pt()")public void befo…

数据结构与算法:排序算法(2)

目录 堆排序 使用步骤 代码实现 计数排序 适用范围 过程 代码实现 排序优化 桶排序 工作原理 代码实现 堆排序 二叉堆的特性&#xff1a; 1. 最大堆的堆顶是整个堆中的最大元素 2. 最小堆的堆顶是整个堆中的最小元素 以最大堆为例&#xff0c;如果删除一个最大堆的…

基于Java开发的数字化询价招标采购系统(SRM系统源码)

在如今商业环境中&#xff0c;企业的采购流程变得越来越重要。传统的采购方式可能存在诸多弊端&#xff0c;例如效率低下、信息不透明、易滋生腐败等。为了解决这些问题&#xff0c;许多企业开始转向SRM&#xff08;供应商关系管理&#xff09;系统。本文将详细介绍SRM数字询价…

js表单autocomplete=‘off‘失效问题

众所周知。。。。autocomplete是Html5中的新属性&#xff0c;有‘off’,on’两个属性。作用是点击输入框时&#xff0c;会打开或者关闭提示信息。 部分浏览器也会出现失效的情况&#xff08;emmmm…&#xff0c;毕竟是html5新增的&#xff0c;有点bug也正常哈&#xff09;。 …

初识Java 10-1 集合

目录 泛型和类型安全的集合 基本概念 添加一组元素 打印集合 List Iterator&#xff08;迭代器&#xff09; 本笔记参考自&#xff1a; 《On Java 中文版》 在进行程序设计时我们会发现&#xff0c;程序总是会根据某些在运行时才能知道的条件来创建新的对象。这意味着&am…

Vue3 - 实现动态获取菜单路由和按钮权限控制指令

GitHub Demo 地址 在线预览 前言 关于动态获取路由已在这里给出方案 Vue - vue-admin-template模板项目改造&#xff1a;动态获取菜单路由 这里是在此基础上升级成vue3和ts&#xff0c;数据和网络请求是通过mock实现的 具体代码请看demo!!! 本地权限控制&#xff0c;具体是通过…

关于若依(ruoyi)前端,f12跟踪失效的问题处理

1、根据作者反馈&#xff0c;使用了vite-plugin-vue-setup-extend该插件&#xff1b; 2、参考作者指导&#xff0c;我采用了去掉这个插件的方法&#xff1b; 具体操作&#xff1a; &#xff08;1&#xff09;找到package.json,去掉该插件&#xff1b; &#xff08;2&#xff…