019-第三代软件开发-Git提交规范

news2024/11/29 8:00:38
头图

第三代软件开发-Git提交规范

文章目录

  • 第三代软件开发-Git提交规范
    • 项目介绍
    • Git提交规范
      • 分支规范
      • Commit Message Format
        • Header
        • Body
        • Footer
        • Revert
    • 总结一下

关键字: QtQmlgitCommitrelease

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

Git提交规范

意外中的意外,在第三代软件开发过程中,博主不在一个人单打独斗,终于有了自己的小伙伴。之前自己孤生一人的时候,Git 的作用仅仅是备份,对于提交规范一直也没有注意。但是有了小伙伴,那就需要稍微规范一下,以方便后期维护和Bug定位。目前我们使用的是一个**Angular的commit message规范**这里咱们随便找两个文章朝下作业

抄作业链接:https://blog.csdn.net/Joseph_ZG/article/details/112818937

抄作业链接:https://www.jianshu.com/p/6433679cd10f

分支规范

分支类型命名规范创建自合并到说明
mastermaster--长期分支,部署到生产环境中的代码
developdevelop-master长期分支,进行代码集成的分支
featurefeature/*developdevelop短期分支,新功能分支
releaserelease/*developdevelop和master短期分支,一次新版本的发布
hotfixhotfix/*masterdevelop 和 master短期分支,生产环境中发现的紧急 bug 的修复,唯一可以直接从master分支fork出来的分支

三个短期分支类型一旦完成开发,它们就会被合并进develop或master,然后被删除。

分支的名称应该遵循一定的命名规范,以方便开发人员识别。

当需要开发一个新的功能时,基本的流程如下:

从 develop 分支创建一个新的 feature 分支,如 feature/my-xxx。
在该 feature 分支上进行开发,提交代码。
当代码提交完成之后,push feature分支到远端仓库。
在gitlab上创建合并请求

Commit Message Format

git commit 规范对于团队协作和版本控制非常重要。以下是一些 git commit 规范的重要性:

  1. 提高可读性和可维护性:使用规范化的提交消息格式可以增加代码库的可读性和可维护性。每个提交都应该清晰地描述所做的更改,以便其他开发人员能够理解和追踪代码的变化。

  2. 改进代码审查过程:规范的提交消息使代码审查过程更加高效和有意义。代码审查人员可以更轻松地查看代码变更的上下文,并提供更准确的反馈和建议。

  3. 方便问题追踪和版本控制:规范化的提交消息可以在问题追踪系统或版本控制工具中更好地关联代码变更和特定的任务或错误。这有助于有效地管理项目中的问题和版本。

  4. 促进团队合作:一致的提交消息格式有助于促进团队之间的良好合作。开发人员可以更容易地理解和解释彼此的代码变更,并更好地协同开发。

总之,git commit 规范的重要性在于提高代码库的可读性、可维护性和协作效率,使团队能够更好地管理和追踪代码的变化。

<header>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

每一个commit message都应该包含header,body和footer。其中footer可以省略,但是header和body都不能为空。

Header

Header分为三个部分type, scope, summary,其中type和summary为必填项,scope可以省略,格式如下:

<type>(<scope>): <summary>

  • Type:

    用于说明git commit的类别,只允许使用下面的标识。

    • feat: 新功能(feature)。
    • fix: 修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。
    • docs: 文档(documentation)。
    • style: 格式(不影响代码运行的变动)。
    • refactor: 重构(即不是新增功能,也不是修改bug的代码变动)。
    • perf: 优化相关,比如提升性能、体验。
    • test: 增加测试。
    • chore: 构建过程或辅助工具的变动。
    • revert: 回滚到上一个版本。
  • Scope

    Scope用于说明 commit 影响的范围,比如Controller、DAO、View等等,视项目不同而不同。例如在Angular中可以是:

    • animations
    • bazel
    • benchpress
    • common
    • compiler
    • compiler-cli
    • core
    • elements

等等,如果其中包含了多个scope,可以用逗’*‘隔’。

  • Summary

    Summary是对commit的一个简短的描述,一般Git Commit Head总共不超过50个字符,所以summary必须精简。对于英文的commit summary,第一,要使用第一人称,现在时,比如change,不是changed也不是changes,第二,首字母无需大写,第三,句尾不要标点符号。中文除了时态,其他也一样。

根据上述规范git commit message header可以如下:

fix(Controller): request url map typo
Body

和Header中的summary一样。同时需要解释提交的动机,为什么需要更改,可以和之前的行为进行比较,来说明改动的影响等等。

Footer

Footer适用于当提交的改动包含了不可兼容变化或者弃用的变化,Footer部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法,同时可以把相关Github issue,JIRA ticket或者其他文档链接填入其中

BREAKING CHANGE: <breaking change summary>
<BLANK LINE>
<breaking change description + migration instructions>
<BLANK LINE>
<BLANK LINE>
Fixes #<issue number>
DEPRECATED: <what is deprecated>
<BLANK LINE>
<deprecation description + recommended update path>
<BLANK LINE>
<BLANK LINE>
Closes #<pr number>
Revert

还有一种特殊情况,如果当前commit用于撤销以前的commit,则必须以revert:开头,后面跟着被撤销commit的Header。

revert: fix(Controller): request url map typo

This reverts commit {commit hash id}

总结一下

把这都放在收费的文章里面,实在是可耻,请把可耻打在评论区,为了整个项目过程的连贯性,这里暂时还是吧这个放在这里,不过也会放到其他的免费转栏里面,不知道能否实现。


博客签名2021

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

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

相关文章

【三维重建】DreamGaussian:高斯splatting的单视图3D内容生成(原理+代码)

文章目录 摘要一、前言二、相关工作2.1 3D表示2.2 Text-to-3D2.3 Image-to-3D 三、本文方法3.1生成式 高斯 splitting3.2 高效的 mesh 提取3.3 UV空间的纹理优化 四. 实验4.1实施细节4.2 定性比较4.3 定量比较4.4 消融实验 总结&#xff08;特点、局限性&#xff09; 五、安装与…

【MySQL系列】- Select查询SQL执行过程详解

【MySQL系列】- Select查询SQL执行过程详解 文章目录 【MySQL系列】- Select查询SQL执行过程详解一、SQL查询语句的执行过程二、SQL执行过程详解2.1. 连接器2.2. 查询缓存2.3. 分析器2.4. 优化器2.5. 执行器 三、undo log 和 redo log作⽤3.1. redo log &#xff08;重做日志&a…

面试算法31:最近最少使用缓存

题目 请设计实现一个最近最少使用&#xff08;Least Recently Used&#xff0c;LRU&#xff09;缓存&#xff0c;要求如下两个操作的时间复杂度都是O&#xff08;1&#xff09;。 get&#xff08;key&#xff09;&#xff1a;如果缓存中存在键key&#xff0c;则返回它对应的值…

lunux查找占用内存前10的进程

1、使用Top命令查询进程 输入 top 命令&#xff0c;然后按下大写M按照内存MEM排序&#xff0c;按下大写P按照CPU排序。 2、查询占用CPU最高的前10个进程 ps aux|head -1;ps aux|grep -v PID|sort -rn -k 3|head 3、查询占用内存最大的前10个进程 ps aux|head -1;ps aux|grep …

Visual Studio Code官网下载、vscode下载很慢、vscode下载不了 解决方案

前言 开发界的小伙伴们对于Visual Studio Code开发环境来可以说非常熟悉了&#xff0c;但由于在Visual Studio Code官网的下载速度非常的慢&#xff0c;即便开了代理也是一样的很慢、甚至下载被中断&#xff0c;几乎不能下载。 解决方案 1、在Web浏览器上打开vscode官网&#…

日常中msvcp71.dll丢失怎样修复?分享5个修复方法

在 Windows 系统中&#xff0c;msvcp71.dll 是一个非常重要的动态链接库文件&#xff0c;它承载了许多应用程序和游戏的运行。如果您的系统中丢失了这个文件&#xff0c;那么您可能会遇到无法打开程序、程序崩溃或出现错误提示等问题。本文将介绍 5 个快速修复 msvcp71.dll 丢失…

最新视频/图集去水印小程序源码/步数小程序源码/王者战力小程序源码/红包封面小程序源码

自带多平台解析接口 短视频去水印图集水印小程序源码 &#xff0c;这是一款支持多种平台去水印的一款微信小程序源码 支持短视频去水印&#xff0c;还有图集去水印等。内含多平台去水印接口&#xff0c;响应的速度也是非常的快&#xff0c;这是一款非常值得推荐的一款小程序源…

2008-2021年上市公司实体企业金融化程度测算数据(原始数据+stata代码)

2008-2021年上市公司实体企业金融化程度测算&#xff08;原始数据stata代码&#xff09; 1、时间&#xff1a;2008-2021年 2、指标&#xff1a;股票代码、年份、交易性金融资产、衍生金融资产、发放贷款及垫款净额、可供出售金融资产净额、持有至到期投资净额、长期债权投资净…

【Java基础面试二十四】、String类有哪些方法?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;String类有哪些方法&…

PTQ量化和QAT量化

目录 1--PTQ量化 2--QAT量化 1--PTQ量化 PTQ量化表示训练后量化&#xff08;Post Training Quantization&#xff09;。使用一批校准数据对训练好的模型进行校准&#xff0c;将训练好的FP32网络直接转换为定点计算的网络&#xff0c;过程中无需对原始模型进行任何训练&#x…

【扩散模型】如何用最几毛钱生成壁纸

通过学习扩散模型了解到了统计学的美好&#xff0c;然后顺便记录下我之前文生图的基础流程~ 扩散模型简介 这次是在DataWhale的组队学习里学习的&#xff0c;HuggingFace开放扩散模型学习地址 扩散模型训练时通过对原图增加高斯噪声&#xff0c;在推理时通过降噪来得到原图&…

【QT 读取JSON】 深入浅出 使用QT内置的QJson模块解析Json文件 匠心之作

目录 0 引言1 Json数据分析2 解析Json数据 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;QT专栏&#x1f4a5; 标题&#xff1a;【QT 读取JSON】 使用QT内置的QJson模块解析Json文件❣️ 寄语&#xff1a;人生的意义或许可以发挥自己全部的潜力&…

大中小企业自招人力及劳务派遣全行业招聘来抖音招聘流量大效果佳

抖音直播招聘报白是通过抖音直播方式展现职位信息&#xff0c;并与求职者进行互动的招聘方式。在抖音平台上&#xff0c;企业或者人力资源公司可以通过直播的形式&#xff0c;将职位以视频直播的方式展现出来。通过抖音直播招聘报白&#xff0c;企业或者人力资源公司可以利用抖…

英语——分享篇——每日200词——1601-1800

1601——starve——[stɑːv]——vi.挨饿&#xff0c;饿——starve——star星星(熟词)ve维E(谐音)——星星吃了维E就不用挨饿——We gave them bread, lest they should starve.——我们给他们面包&#xff0c;以免他们饿死。 1602——blossom——[blɒs(ə)m]——vi.开花&…

新手如何找到Docker容器(redis)中的持久化文件?

具体步骤 要查看Docker容器的dump.rdb和appendonly.aof文件&#xff08;如果启用了AOF持久化&#xff09;的位置&#xff0c;我们需要知道容器中Redis配置文件的内容或者容器的数据卷的挂载位置。 这里是一般步骤&#xff1a; 查找容器的数据卷挂载位置 使用docker inspect命令…

MySQL的索引——索引的介绍及其数据结构B+树 索引的类型 索引的使用及其失效场景 相关名词解释

前言 索引是存储引擎用于快速查找数据纪录的一种数据结构&#xff0c;索引是数据库中经常提及的一个词&#xff0c;究竟什么是索引&#xff0c;索引的数据结构是什么&#xff0c;索引有什么类型&#xff1f; 本篇博客尝试阐述数据库索引的相关内容&#xff0c;涉及什么是索引…

【Java基础面试二十】、介绍一下Object类中的方法

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;介绍一下Object类中的方…

实验室如何用超声波清洗机萃取

实验室如何用超声波清洗机萃取&#xff1f;其实很多人不知道&#xff0c;超声波清洗机除去可用于清洗之外&#xff0c;还被广泛地应用于药物、食品、工业原料等无机或有机组分的萃取。实验室中使用超声波机来进行萃取&#xff0c;是近年来随着超声波技术的发展而起来的一种新型…

深度解析自动化测试流程(纯干货)

最近很多小伙伴咨询自动化测试到底该怎么做&#xff1f;流程是什么样的&#xff1f;在每个阶段都需要注意什么&#xff1f;本文也就主要从自动化测试的基本流程入手&#xff0c;对面试自动化测试工程师的同学会有不少帮助。对于在职的朋友&#xff0c;也可以参考此流程&#xf…

OpenP2P实现内网穿透远程办公

OpenP2P是一个开源、免费、轻量级的P2P共享网络。你的设备将组成一个私有P2P网络&#xff0c;里面的设备可以直接访问其它成员&#xff0c;或者通过其它成员转发数据间接访问。如果私有网络无法完成通信&#xff0c;将会到公有P2P网络寻找共享节点协助通信。 相比BT网络用来共享…