java开发必备 Git 分支开发:规范指南及完全学会Git的24堂课笔记

Java互联网架构师之路:从DevOps工程化到JVM性能调优的完整技术栈进阶指南 互联网后端开发领域,从初级工程师进阶为架构师不仅需要掌握的设计能力,更需要对的底层原理、手段以及工程化实践有系统性认知。全套资源(含源码课件),恰好覆盖了架构师技术栈的核心维度,在此分享其技术体系与学习价值。 阅读详情

Git 是目前最流行的源代码管理工具。为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作。

分支管理

分支命名

master 分支

master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性

注 意

master 分支一般由develop以及hotfix分支合并,任何时间都不能直接修改代码

develop 分支

develop 为开发分支,始终保持最新完成以及bug修复后的代码

一般开发的新功能时,feature分支都是基于develop分支下创建的

feature 分支

开发新功能时,以develop为基础创建feature分支

分支命名: feature/ 开头的为特性分支, 命名规则: feature/user_module、 feature/cart_module

release分支

release 为预上线分支,发布提测阶段,会release分支代码为基准提测

当有一组feature开发完成,首先会合并到develop分支,进入提测时,会创建release分支。如果测试过程中若存在bug需要修复,则直接由开发者在release分支修复并提交。当测试完成之后,合并release分支到master和develop分支,此时master为最新代码,用作上线。

hotfix 分支

分支命名: hotfix/ 开头的为修复分支,它的命名规则与 feature 分支类似

线上出现紧急问题时,需要及时修复,以master分支为基线,创建hotfix分支,修复完成后,需要合并到master分支和develop分支

常见任务

增加新功能

(dev)$: git checkout -b feature/xxx            # 从dev建立特性分支(feature/xxx)$: blabla                         # 开发(feature/xxx)$: git add xxx(feature/xxx)$: git commit -m 'commit comment'(dev)$: git merge feature/xxx --no-ff          # 把特性分支合并到dev

修复紧急bug

(master)$: git checkout -b hotfix/xxx         # 从master建立hotfix分支(hotfix/xxx)$: blabla                         # 开发(hotfix/xxx)$: git add xxx(hotfix/xxx)$: git commit -m 'commit comment'(master)$: git merge hotfix/xxx --no-ff       # 把hotfix分支合并到master,并上线到生产环境(dev)$: git merge hotfix/xxx --no-ff          # 把hotfix分支合并到dev,同步代码

测试环境代码

(release)$: git merge dev --no-ff             # 把dev分支合并到release,然后在测试环境拉取并测试

生产环境上线

(master)$: git merge release --no-ff          # 把release测试好的代码合并到master,运维人员操作(master)$: git tag -a v0.1 -m '部署包版本名'  #给版本命名,打Tag

日志规范

在一个团队协作的项目中,开发人员需要经常提交一些代码去修复bug或者实现新的feature。而项目中的文件和实现什么功能、解决什么问题都会渐渐淡忘,最后需要浪费时间去阅读代码。但是好的日志规范commit messages编写有帮助到我们,它也反映了一个开发人员是否是良好的协作者。

编写良好的Commit messages可以达到3个重要的目的:

加快review的流程

帮助我们编写良好的版本发布日志

让之后的维护者了解代码里出现特定变化和feature被添加的原因

目前,社区有多种 Commit message 的写法规范。来自Angular 规范是目前使用最广的写法,比较合理和系统化。如下图:

Commit messages的基本语法

当前业界应用的比较广泛的是 Angular Git Commit Guidelines

angular.js/DEVELOPERS.md at master · angular/angular.js · GitHub

具体格式为:

<type>: <subject><BLANK LINE><body><BLANK LINE><footer>

type: 本次 commit 的类型,诸如 bugfix docs style 等

scope: 本次 commit 波及的范围

subject: 简明扼要的阐述下本次 commit 的主旨,在原文中特意强调了几点 1. 使用祈使句,是不是很熟悉又陌生的一个词,来传送门在此 祈使句 2. 首字母不要大写 3. 结尾无需添加标点

body: 同样使用祈使句,在主体内容中我们需要把本次 commit 详细的描述一下,比如此次变更的动机,如需换行,则使用 |

footer: 描述下与之关联的 issue 或 break change,详见案例

Type的类别说明:

  • feat: 添加新特性
  • fix: 修复bug
  • docs: 仅仅修改了文档
  • style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
  • refactor: 代码重构,没有加新功能或者修复bug
  • perf: 增加代码进行性能测试
  • test: 增加测试用例
  • chore: 改变构建流程、或者增加依赖库、工具等

Commit messages格式要求

# 标题行:50个字符以内,描述主要变更内容## 主体内容:更详细的说明文本,建议72个字符以内。 需要描述的信息包括:## * 为什么这个变更是必须的? 它可能是用来修复一个bug,增加一个feature,提升性能、可靠性、稳定性等等# * 他如何解决这个问题? 具体描述解决问题的步骤# * 是否存在副作用、风险? ## 如果需要的化可以添加一个链接到issue地址或者其它文档

下面给大家分享出来这份大牛力荐的《完全学会Git GitHub Git Server的24堂课》

  • .针对项目开发人员:以最有效率的方式,引导你在实践中完整地学习Git的操作技巧和应用。
  • 对项目管理者:在实例中学习如何查看项目开发的名种统计图,以便随时掌握项目开发的状况。
  • 针对MIS人员:提供建立Git Server的多种玩法,自行选用和规划最适合自己实际运用的方法。

内容简介

本书以教科书的方式,循序渐进地向软件开发人员或软件开发的项目管理人员,讲述如何快速掌握分布式版本控制系统Git的应用方法,让繁琐复杂的项目开发的版本控制变得高效且轻松自如。书中细致入微地介绍了如何使用设置文件和操作Git文档库,以及建立项目开发的分支、合并分支和解决冲突的操作:在具备扎实的基础之后,介绍了Git GUI程序用法,以及Git在团队开发模式中应用的问题:讲述如何与全球的项目开发人员进行交流,提升程序开发的经验和能力:介绍了GitHub、 Bitbucket、 GitLab等提供Git服务的网站;本书最后的重点为介绍架设Git Server 的几种方法,让每一个项目开发团队,可以按照自己的软硬件环境,选择适合的方式来控管项目开发。

目录章节展示

第一部分Git 的基本概念和操作

第1课Git、谁与争锋

第2课Gi t配置文件的妙用

第3课把文件存入Gi t文档库

第4课比较文件的差异和从Gi t文档库取回文件

第5课Gi t程序项目管理的实践演练

第6课获取Git文档库统计数据和绘制统计图表

第二部分建立分支、合并和解决冲突

第7课程序项目的分支(Br anch)

第8课合并程序项目的分支和解决冲突

第9课使用Rebase指令更新分支的起始点

第10课 程序项目的分支和合并的实践演练

第三部分Git 程序的图形操作介面

第11课Git GUI程序的基本功能

第12课使用Git GUI程序创建分支和合并

第13课Smar tGi t程序操作介绍

第14课sourceTree程序操作介绍

第15课TortoiseGi t程序操作介绍

第四部分远程 Git文档库和团队开关模式

第16课 “远程Gi t文档库”的基础操

第17课“远程Gi t文档库”的高级操作

第18课Gi tHub让程序项目飞上云端

第19课F ork让Gi t文档库分家后再合并

第20课Bi tbucket比Gi tHub更好用

第21课Gi tLab完全免费再加送整个系统

第五部分架设 Git Server

第22课使用Windows共享文件夹或 是Git Daemon作为Git Server

第23课 使用TTP/HTTPS访问Git Serv er

第24课使用SSH认证和加密的Git seryr er

java开发宝典 如果运行环境要求24小时不间断运行(即更新时不能停机),一些关键接口建议在前后端上线的下一个版本再删除,以防止升级过程中出现不必要的服务中断。具体实践过程中都会宣称提供Restful接口,实际由于软件面向业务场景的复杂性,很难将所有业务场景与HTTP请求类型相对应。所有查询接口的返回值都要能通过swagger查看字段定义。不能返回一个Object、Map之类的让前端去猜谜语。多使用 jdk自带库和被验证的第三方库的类和函数,(这个也不太理解,废弃的类直接删了不行吗)无论是包、类、方法、变量, 阅读详情

相关推荐

CANoe实战:LIN Slave一致性测试全流程解析

本文详细解析了使用CANoe进行LIN Slave一致性测试的全流程,包括测试概述、环境搭建、模块集成、测试用例详解及报告分析。通过实际案例分享,帮助工程师掌握LIN 2.0/2.1/2.2、SAE J2602和ISO 17987等标准的自动化测试方法,提升汽车电子从节点的可靠性和兼容性验证效率。

weixin_42665725的博客 533

Git版本控制管理——钩子

Git中的钩子可以理解为一个特殊动作触发的脚本。任何时候当版本库中出现如提交或补丁等特殊事件时,都会触发执行一个或多个任意的脚本。通常情况下,一个事件会分解为多个规定好的步骤,可以为每个步骤绑定自定义脚本。当Git事件发生时,每一步开始都会调用相应的脚本。钩子只属于并作用于一个特定的版本库,在克隆操作中不会复制。换句话说,在私有版本库中设置的钩子不会传送到新克隆的版本库,也就不会改变新克隆的仓库的行为。而如果真的有需要的话,则需要获取被克隆版本库的.git/hooks目录。

止步听风的博客 2216

亿佰特E77模块(STM32WLE5CCU6)LoRa通信实战指南:从配置到应用开发

本文详细介绍了亿佰特E77模块(STM32WLE5CCU6)的LoRa通信实战指南,从硬件配置到应用开发。基于ARM Cortex-M4内核的E77模块集成了LoRa射频前端,具备超低功耗和硬件级抗干扰特性,适用于智能农业、工业现场等场景。文章提供了开发环境搭建、LoRa参数配置、实战通信及性能优化等实用技巧,帮助开发者快速掌握LoRa通信技术。

weixin_29164185的博客 761

Java - 开发时代码分支如何命名

开发时代码分支如何命名

A_bad_horse的专栏 1428

Doris实战——结合Flink构建极速易用的实时数仓

Doris实战——结合Flink构建极速易用的实时数仓

爱吃辣条的博客 8231

数据分析必问:Pandas面试题及参考答案

DataFrame是Pandas库中的一个核心数据结构,它类似于Excel中的表格,可以存储不同类型的数据。在Pandas中,抽样操作通常很简单,但是需要根据数据的特点和分析的需求来选择合适的抽样方法。数据标准化和归一化是数据预处理中常用的技术,目的是将数据调整到一个合适的范围内,以消除不同特征量纲和数值范围的差异,从而保证模型训练的有效性。CSV文件是一种文本文件,其中的数据以逗号分隔。不平衡数据集指的是数据集中各类别样本的数量差异较大的情况,这可能导致模型训练出现偏差,影响模型的泛化能力。

大模型大数据攻城狮的专栏 3009

整理最全规范之Git仓库管理规范,Java开发规范,最全Java命名规范,数据库开发设计规范,接口设计规范

一、代码仓库创建规范 1、 项目创建需符合Group规范。 2、 创建项目必须添加Project description说明。 3、 每个项目都需要README.md文件。 4、 除文档说明类型仓库,所有代码仓库都需要.gitignore。 注:有模板的项目,要以统一的模板创建项目 1.1 README文件规范 README文件结构如下: <项目简介/Introduction> <快速使用/Quick start> <文档说明/Documentation> Intro

爱是与世界平行 8306

RK3588开发笔记-麦克风阵列多pdm通道合并成一个声卡

在音频设备的开发中,特别是在多通道音频数据处理场景中,如何将多个PDM(Pulse Density Modulation)通道整合成一个声卡设备,是一个非常具有挑战性的问题。RK3588芯片作为一款性能强大的平台,提供了对多个音频通道的支持。本文将介绍如何在RK3588上将多个PDM通道合并成一个麦克风阵列声卡,从而在Linux系统下统一管理和使用,提高多通道音频的同步性。在本文中我们主要介绍使用2通道回采+4通道mic声音采集构成一个6通道声卡,加以回声消除实现一个多麦克风阵列。

flypig has a dream! 1926

【git】git管理规范--分支命名规范、CommitMessage规范

Subject(主题):简洁描述提交的目的,不超过 50 个字符。Scope(范围):说明提交的影响范围(可选)。功能分支(Feature)示例 2:修复 bug。

lillianqdzpw 8133

AI大模型入门到实战系列(二十一)命名实体识别(NER)

命名实体识别(NER)是自然语言处理中的关键任务,旨在从文本中识别并分类预定义类别的实体(如人名、地点、组织等)。其核心步骤包括文本预处理、实体边界检测和类型分类。主流技术方法经历了从基于规则、统计机器学习到深度学习的演进,当前主要采用预训练语言模型(如BERT)和序列标注技术(如BiLSTM-CRF)。关键技术挑战包括实体边界模糊、嵌套实体和领域适应等问题。NER广泛应用于信息抽取、搜索引擎优化和知识图谱构建等领域,常用精确率、召回率和F1值作为评估指标。实际应用中通常采用BIO标注体系,并通过标签对齐处

echo的博客 1624

HANA-公司间销售ICS-IDOC系统配置-保姆级配置文档

合作伙伴编号:这个客户表示收票方(销售公司在生产公司中所对应的客户代码,卖方开票,买方收票),也就是咱们在配置消息类型输出的时候合作伙伴的类型的一个具体的客户编码,这个是站在发货工厂的角度去看的,也就是EDI 输出的 BP 合作伙伴的编号;在项目实施过程中经常会遇到关联方交易的问题,有公司间采购的业务场景,也会存在公司间销售的业务场景,本文将着重讲解公司间销售在SAP系统中的实现场景。在这个过程中,销售公司向客户开票产生应收,而生产公司向销售公司开票产生自己的应收,同时销售公司向生产公司产生应付。

我小时候很黑的博客 2392

Java开发必备 Git 分支开发:规范指南及完全学会Git的24堂课笔记

面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。前端面试题汇总JavaScript前端资料汇总一个人可以走的很快,但一群人才能走的更远。

m0_60635176的博客 725

L2tp环境搭建笔记- Openwrt平台

本文使用3台openwrt设备, 分别搭建L2TP服务和2个客户端, 进行端到端验证和局域网组网,并分析搭建过程中涉及的默认路由( defaultroute) 配置问题。

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 3391

git 怎么给自己的分支命名_Java开发必备 Git 分支开发:规范指南及完全学会Git的24堂课笔记...

Git 是目前最流行的源代码管理工具。为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作。分支管理分支命名master 分支master 为主分支,也是用于部署生产环境的分支,确保master分支稳定性注 意master 分支一般由develop以及hotfix分支合并,任何时间都不能直接修改代码develop 分支develop 为开发分支,始终保持...

weixin_42525637的博客 655

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Git 提交规范-Java程序员收藏必备

你可能会忽略的 Git 提交规范 规范是建立在程序开发者与程序阅读者一个沟通的桥梁,是一个团队必须要严格遵守的约定 ——动力节点Java学院 一、为什么需要规范? 无规矩不成方圆,编程也一样。 如果你有一个项目,从始至终都是自己写,那么你想怎么写都可以,没有人可以干预你。可是如果在团队协作中,大家都张扬个性,那么代码将会是一团糟,好好的项目就被糟践了。不管是开发还是日后维护,都将是灾难。 这时候,...

weixin_40599844的博客 953

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RAG Agent 语义搜索工具设计:基于 Pydantic AI 与 PGVector 的三种检索工具实现规范

本文以 context-engineering-intro 仓库中 `use-cases/agent-factory-with-subagents` 场景下的 RAG Agent 规划文档为核心,完整讲解语义搜索 Agent 三个核心检索工具(`semantic_search`、`hybrid_search`、`auto_search`)的设计规范与实现要点。文档原位于 [planning/too

gitblog_00855的博客 290

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

git 教程、常用命令

git 教程、常用命令

freeking101的博客 6627

Kyo社区贡献指南:如何参与这个革命性框架的开发

Kyo是一个为Scala开发者打造的革命性工具包,提供了强大的功能和灵活的开发体验。作为开源项目,Kyo欢迎所有开发者参与贡献,无论是提交bug报告、功能请求、文档改进还是代码贡献。本文将详细介绍如何参与Kyo框架的开发,成为社区的一员。 [![Kyo框架logo](https://raw.gitcode.com/gh_mirrors/ky/kyo/raw/ba5c7285e9a7df9b22f

gitblog_00521的博客 421

Java面试前的敲门砖:多线程+微服务spring源码+Redis+docker+Git

事实上,像微软、Joyent、 英特尔和VMware等公司,虽在Linux容器实现中都换掉了Docker,却为他们自己的容器产品保留了Docker的命令行接口。在短短两年时间里,很多新公司都如雨后春笋般成立,为的是增强开发者的体验和填补Docker生态系统的空白,形成一个健康且热心的Docker社区。Spring的特性不仅覆盖了传统的Java EE开发,还拓展到移动开发、大数据、应用集成等领域,成为VMware云战略的重要组成部分。第24课使用SSH认证和加密的Git serwer。

2401_89317420的博客 747
上一篇: 三面蚂蚁惨败,面试官要求手写算法?看完你还觉得算法不重要?
下一篇: 字节跳动的顶级架构师竟然整理出程序员向架构师的必备转型之路
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值