git 提交自动带上storyid

news2024/11/24 5:26:23

       公司里的运维团队的产品经理,那老六提出说要在每个提交带上的jira storyid或者bugid,不用他自己弄不顾他人麻烦,真想问候他的xx。不过既然已经成为定局,还是想想有没有其他办法。经一番调研,网上有比较零碎的信息,不系统,所以这里总结一下,分享给各位道友。由于本人是前端,所以方案更多地是站在前端的角度去写。

        这里运维只校验提交信息的格式为:storyid或者bugid:提交信息,他们并没有限定bug一定要用bugid, 所以,我们通用之提交storyid,不用bugid, 看完后续方案,你就会明白,我为什么这么限定。

方案一、采用编辑器插件

我开发的编辑器是vscode,所以这里采用的是vscode 插件,这里经过测试,推荐的是Jira Commit Message 插件。我就不一步一步写怎么安装插件了,不会的自己百度一下。以下是这个插件文档翻译和用法:

简介:

这个插件自动从分支名中提取jira id , 附加到提交信息的前缀。

功能:

  • 自动添加前缀:基于分支名,自动在提交信息中添加前缀
  • 自定义模式: 允许自定义配置issue code 提取模式和提交信息格式.
  • 过时前缀处理: 分支改变时,会自动检测并更新过时的前缀.

配置

通过 VSCode settings.json 进行配置:

  • commitMessagePrefixPattern: 匹配分支名中 issue 前缀的正则,. 默认是 (ML-\d+)-.*.
  • commitMessageFormat: 提交信息的格式. 使用 ${prefix} 作为前缀 , ${message} 作为原始提交信息,默认是 "[${prefix}] ${message}".
  • gitHeadWatchInterval: 检测 .git/HEAD file 改变的时间间隔. 默认是 1000.

使用:

1、从上面的文档可以看出,这个插件是通过提取我们分支上的storyid,并自动给我们附带到提交信息上的。所以我们在分支命名的时候,带上storyid,如:feature/storyid/v1.0,这样就能提取到了。这也是我们开头写得为什么不用bugid的原因,分支名只有一个,不可能用bugid。(还要那老六也没要求bug一定要用bugid)。

2、通过上面配置中的commitMessagePrefixPattern配置匹配出storyid的正则,通过commitMessageFormat配置提交信息的格式。

3、写提交信息,并点下面按钮,即可自动附带上storyid

真感谢写出这插件的作者。

优点:

1、前端项目安装一次都能用

缺点:

1、跟浏览器相关,后端同学可能用不了

2、可能有的vscode使用这个插件时会报错

方案二、采用git hook 方式

       这个方案其实思路跟方案一是一样的,都是在分支名里面提取storyid,所以我们分支名保持相同的形式。只不过提取和附带信息的过程处理放在prepare-commit-msg hook中。

       在项目下找到 .git/hooks ,看看里面有没有prepare-commit-msg,没有的话新建,并拷贝下面代码,有的话将下面代码复制到合适的地方(不要影响原本hook的功能)

#!/bin/bash

# Get the current branch name
current_branch=`git rev-parse --abbrev-ref HEAD`

# Search Jira ID in a pattern such a "feature/ABCD-123-my-feature"
id=$(echo $current_branch | sed -nE 's,[a-z]+/([A-Z]+-[0-9]+)-.+,\1,p')

# Only prepend if an ID was found in the current branch
if [[ ! -z $id ]]; then
 # $1 is the name of the file containing the commit message
 # Prepend "ABCD-123: "
 sed -i.bak -E "1s/^/${id}: /" $1
fi

写点信息,提交,你会发现,storyid自动附带上了,都不用像方案一一样,去点按钮。

优点:

1、前后端通用,没有编辑器限制

缺点:

1、写在项目下git hook,每个项目都必须搞一遍,且重新拉项目的时候又得重新重复一遍(可能有全局的设置方式,不过我没去调研,我其实在想,运维那帮人,是不是有手段可以在服务端设置)

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

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

相关文章

攻防世界--->地穴

前言:学习笔记。 下载 解压 查壳。 64位ida打开。 进入主函数。 很容易得知,这是一个RC4加密。 【 (题外话) 在reverse中,RC4考点,不会很难。 reverse中RC4关键点就是,抓住异或。 一般解这种…

Open a folder or workspace... (File -> Open Folder)

问题:vscode Open with Live Server 时 显示Open a folder or workspace... (File -> Open Folder)报错 解决:不可以单独打开文件1.html ; 需要在文件夹里打开 像这样

【哈希表】深入理解哈希表

目录 1、哈希表简介2、哈希函数2.1、概念2.2、常用的哈希函数2.2.1、直接定址法2.2.2、除留余数法2.2.3、平方取中法2.2.4、基数转换法 3、哈希冲突3.1、概念3.2、开放地址法【闭散列:key存放到冲突位置的“下一个”空位置】3.3、链地址法【开散列:冲突位…

SAM 2:分割图像和视频中的任何内容

文章目录 摘要1 引言2 相关工作3 任务:可提示视觉分割4 模型5 数据5.1 数据引擎5.2 SA-V数据集 6 零样本实验6.1 视频任务6.1.1 提示视频分割6.1.2 半监督视频对象分割6.1.3 公平性评估 6.2 图像任务 7 与半监督VOS的最新技术的比较8 数据和模型消融8.1 数据消融8.2…

dr 航迹推算 知识介绍

DR(Dead Reckoning)航迹推算是一种在航海、航空、车辆导航等领域中广泛使用的技术,用于估算物体的位置。DR航迹推算主要通过已知的初始位置和运动参数(如速度、方向)来预测物体的当前位置。以下是 DR 航迹推算的详细知…

跨平台电商数据整合:item_get API在电商大数据平台中的角色

在电商行业蓬勃发展的今天,跨平台运营已成为众多商家的必然选择。然而,随之而来的数据孤岛问题却成为了制约电商企业进一步发展的瓶颈。为了解决这一问题,电商大数据平台应运而生,而item_get API作为获取商品详情的关键接口&#…

统计学第6天

1、变量间关系的度量 函数关系 (1)是一一对应的确定关系; (2)设有两个变量x和y,变量y随x一起变化,并完全依赖于x,当x取某个数值时,y根据确定的关系取相应的值,称y是x的…

建设网盘聚合中心—Win10+Alist+RaiDrive

经常需要在网上找各种资源,但遇到 2 个问题: 1. 大部分网盘都需要先将文件保存在自己网盘后才能下载,也就是必须创建对应网盘账号。 2. 有些网盘还必须要下载客户端才能下载文件。 创建账号无法避免,但可以不用下载那么多的客户端…

写在 Pencils Protocol TGE 前:加密市场共识才是王道,拥抱社区

“Pencils Protocol 正在成为本轮市场周期中,加密项目建立共识最有力的工具!” 对于加密项目而言,代币 TGE 是一个非常重要的事情,它不仅仅意味着生态内经济系统的全面启动,同时也意味着项目生态市场的全面开启。当然…

《Rust避坑式入门》第1章:挖数据竞争大坑的滥用可变性

赵可菲是一名Java程序员,一直在维护一个有十多年历史的老旧系统。这个系统即将被淘汰,代码质量也很差,每次上线都会出现很多bug,她不得不加班修复。公司给了她3个月的内部转岗期,如果转不出去就会被裁员。她得知公司可…

AF透明模式/虚拟网线模式组网部署

透明模式组网 实验拓扑 防火墙基本配置 接口配置 eth1 eth3 放通策略 1. 内网用户上班时间(9:00-17:00)不允许看视频、玩游戏及网上购物,其余时 间访问互联网不受限制;(20 分) 应用控制策略 2. 互联…

二维空间向量的p范数等密度轨迹

图2-52:二维空间向量的 ℓ p \ell p ℓp范数等密度轨迹。 想过两种方式,还是放在一起省地方。 禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》 禹晶、肖创柏、廖庆敏《数字图像处理》资源…

数据库系统原理及应用——仓库管理系统

目录 引言 一.需求设计说明书 1.需求分析 2.系统背景 3.系统目标 4.人员分配 5.数据流程图(DFD) 二.概念结构设计 1.局部E-R图 (1)供应商 (2)货物 (3)客户 &…

1-19 平滑处理——双边滤波 opencv树莓派4B 入门系列笔记

目录 一、提前准备 二、代码详解 cv2.bilateralFilter函数用于对图像进行双边滤波。双边滤波是一种保持边缘的平滑技术,常用于图像去噪声和增强图像的细节。函数的四个参数如下: 三、运行现象 四、完整工程贴出 一、提前准备 1、树莓派4B 及 64位系统…

stack smashing detect以及解决之道

0. 简介 相较于其他报错,stack smashing detect这个报错是最令人头疼的段错误种类。“Stack smashing detect” 是指在程序运行过程中检测到栈溢出的情况。栈溢出是一种常见的安全漏洞,发生在程序尝试往栈空间写入超过其边界范围的数据时。 1. 常见分类…

改写二进制文件

以下是一些常见的方法和工具: 1. 使用十六进制编辑器 十六进制编辑器 是最直接的工具之一,用于查看和编辑二进制文件中的数据。它允许你以十六进制格式查看和修改文件内容。 常见十六进制编辑器: HxD(Windows)Hex F…

铁路订票系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,车次信息管理,基础数据管理,论坛管理,通知公告管理,用户管理,轮播图信息 微信端账号功能包括:系统首页&a…

【linux学习指南】Linux编译器 gcc和g++使用

文章目录 📝前言🌠 gcc如何完成🌉预处理(进行宏替换) 🌠编译(生成汇编)🌉汇编(生成机器可识别代码) 🌠链接(生成可执行文件或库文件)&…

变压器制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

变压器制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型。作为传统制造业的重要组成部分,变压器制造行业也不例外地踏上了数字化转型的快车道。而变压器制造5G智能工厂物联数字孪生平台的出现,更是为这一进程注入了强大的动力&#…

内卷时代无人机培训机构如何做大做强

在当今社会,随着科技的飞速发展,“内卷”一词频繁被提及,反映了各行业竞争日益激烈的现象。对于无人机培训行业而言,如何在这样的时代背景下脱颖而出,实现做大做强的目标,成为每个培训机构必须深思的问题。…