怎样使用GitLab管理项目?

article/2025/1/11 22:42:21

1. issue 介绍

一般 master 分支默认是被锁住的,其目的是保护该分支。普通开发人员可以创建 issue 后建立对应的分

支然后去完成任务。完成issue 后便要合并分支,只需发送 merge request ,等待 owner 审核才能合并到

master 分支上。合并的过程中可能会出现代码冲突问题,而这个问题却交给了owner去处理,因为普通

开发人员没有权限。

Issue 指的是一项待完成的工作,通常与系统的改进有关,中文可以翻译为 问题 或者 事务。下面这些都

是 Issue的例子。

  • 一个软件的bug
  • 一项功能建议
  • 一项待完成的任务
  • 文档缺失的报告

每个Issue 应该包含该问题的所有信息和历史,使得后来的人只看这个 Issue,就能了解问题的所有方面

和过程。历史上,Issue 起源于 客服部门。用户打电话反映问题,客服就创建一个工单(ticket),后续的

每一个处理步骤,每一次与用户的交流,都要更新工单,记录全部信息。这就是issue的前身。因此,

Issue 的原始功能是 问题追踪和工单管理,后来不断扩展,逐渐演变成全功能的项目管理工具,还可以

用于制定和实施软件的开发计划。

2. 创建 Issue template

在存储库的.gitlab/issue_templates/目录内创建一个新的 Markdown( .md )文件. 提交并推送到您的默认分支.

如果您的存储库中没有.gitlab/issue_templates目录,则需要创建它.

要创建.gitlab/issue_templates目录:

  1. 单击master旁边的+按钮,然后选择New directory .

    首先进入到项目中

在这里插入图片描述
在这里插入图片描述

  1. 在 .gitlab 目录下用同样的方式创建 issue_template目录

    如果是合并请求分支则需要创建 merge_request_templates,当合并分支时,可以使用此模板

  2. 在 issue_template 目录下创建 模板文件

    比如 创建合并请求模板 CodeReview.md

    提交评审类型:
    - [ ] 新功能需求
    - [ ] Bug修复
    - [ ] 数据库更改 
    - [ ] 配置更新
    - [ ] 其它评审相关的需求号/Bug号:
    

    bug.md

    Bug 标题:状况描述:Assign:
    /assignDue Date:
    /due Milestone:
    /milestone %Label:
    /label ~"Bug" 
    

    feature.md

    Feature 标题:功能描述:Assign:
    /assignDue Date:
    /due Milestone:
    /milestone %Label:
    /label 
    

    merge.md

    一樣在 Project 的 default branch 建立 .gitlab/merge_request_templates/ 資料夾,接著以 Markdown 格式撰寫 Templates,例如下面的範例:

    相关 Issue: Closed #Assign:
    /assignDue Date:
    /due Milestone:
    /milestone %Label:
    /label ~"Dev Leader" 
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UoSTvHr6-1650585952887)(D:\study\项目\GIt分支管理\gitlab使用.assets\image-20211020161117706.png)]

*写优秀的“需求” issue*
如果你要录入一个需求类的 issue,最好在内容主体中包含下面这些内容:

  • 用一句话描述你的需求,并用它作为标题
  • 这个需求是解决什么问题的?
  • 这个需求对软件现有功能会造成什么影响?
  • 这个需求应该实现什么样的功能?
  • 这个需求是否依赖其他模块提供相关支持?
  • [可选] 这个需求有哪些实现方式?
  • [可选] 这些可选的实现方式分别有哪些优缺点?

*编写优秀的“bug” issue*
如果你要录入一个 bug issue,最好在内容主体中包含下面这些内容:

  • 提供出现问题的软件版本号、操作系统环境等相关信息
  • 提供能够稳定复现问题的相关步骤
  • 描述期待行为与当前行为
  • [可选] 你对这个 bug 原因的相关分析

怎样添加创建issue的模板

在这里插入图片描述

当你提交一个commit的时候在commit message里面使用#issue, 比如#8, gitlab 就会自动关联issue 8跟这个commit. 当然在gitlab

上面写comment的时候使用这个也是有效的.

那么如何跟随着commit关闭一个issue呢? 在confirm merge的时候可以使用一下命令来关闭相关issue:

fixes #xxx
fixed #xxx
fix #xxx
closes #xxx
close #xxx
closed #xxX

3.创建MileStones

这里的MileStones,和版本的概念差不多,可以把一个Issue划分在某个版本下。支持以版本的维度进行

项目管理。

基于Issue拉取分支以及发起Merge request

无论是GitHub还是GitLab,都可以方便地在Issue上创建分支。在该分支上解决了Issue的问题以后,提

交远程分支。就可以发起Merge request

img

img

merge完成后,该Issue的状态会自动变成closed
img

merge完成以后,分支状态就会变成merged,可删除该分支

img

对于大型项目, 每个 Issue 至少应该有两个 Label ,一个表示性质,另一个表示优先级。

todo→进行中→已完成→测试中→已测试

ToDo->开发中->代码审查中->合并master->部署测试环境->测试通过->已部署

表示优先级的 Label,可以采用下面的级别。

  • 高优先级(High):对系统有重大影响,只有解决它之后,才能去完成其他任务。
  • 普通优先级(Medium):对系统的某个部分有影响,用户的一部分操作会达不到预期效果。
  • 低优先级(Low):对系统的某个部分有影响,用户几乎感知不到。
  • 微不足道(Trivial):对系统的功能没有影响,通常是视觉效果不理想,比如字体和颜色不满意。

http://chatgpt.dhexx.cn/article/P3ATfXRp.shtml

相关文章

软件需求管理过程

软件需求管理过程 软件需求管理过程 软件需求管理的过程 需求确认(确认需求规格) 需求获取–>需求分析–>需求规格编写–>需求验证需求变更(开发过程中的需求管理) 需求获取,需求分析,需求规格编写,需求验证,需求变更…

项目管理——需求收集与管理

项目管理——需求收集与管理 VS 需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫…

项目管理--需求分析

项目管理-需求分析 一、需求分析概述软件需求分类 需求分析是什么? 二,需求分析的任务需求分析的任务主要有两个方面:需求分析的困难:需求分析过程需求管理 三,需求分析案例需求分析的过程包括:exp:需求陈述需求陈述中…

谈产品研发项目需求及需求变更管理

公司经过2年多所研发的产品,终于正式试用了,中间经历过了无数次调整,产品研发过程是不断迭代的过程,发生需求变更、设计变更的情况非常多,为不影响创新和开拓思路,研发处在开放状态,当前阶段是时…

需求管理搞不定?这4招帮你解决项目需求管理

当你坐下来分析一个失败项目的时候,会发现很多项目在需求分析阶段就出现了问题,而需求变更也或多或少和开始的需求有关。 但项目需求就像神秘人一样,不知道是什么、不知道从哪来、不知道想干啥,搞清项目需求简直像一场读心术… …

软件项目管理 第五讲软件项目需求管理

文章目录 项目案例软件需求管理的基本概念什么是软件需求?关于软件需求的注意事项软件需求的重要性 软件需求开发软件需求工程的产生什么是软件需求开发?软件需求开发的任务软件需求开发的过程步骤1:收集和获取软件需求步骤2:软件需求建模步骤3:文档化软…

项目管理学习总结(2)——需求收集和管理

需求收集对于产品经理来说,都已经属于老生常谈了。在产品的立项和设计前需要先做需求调研,在这里我们就来谈谈如何进行需求收集和管理。 一、需求收集目的 需求收集的目的就是了解用户目前所需要的是什么,最迫切需要去解决的问题是什么&#…

END-TO-END OPTIMIZED IMAGE COMPRESSION论文阅读

END-TO-END OPTIMIZED IMAGE COMPRESSION 文章目录 END-TO-END OPTIMIZED IMAGE COMPRESSION单词摘要:1.INTRODUCTION2.CHOICE OF FORWARD, INVERSE, AND PERCEPTUAL TRANSFORMS3.OPTIMIZATION OF NONLINEAR TRANSFORM CODING MODEL3.1 RELATIONSHIP TO VARIATIONAL…

[论文解读] Concolic Testing for Deep Neural Networks

Concolic Testing for Deep Neural Networks 文章目录 Concolic Testing for Deep Neural Networks简介摘要介绍相关工作DNNs的鲁棒性Concolic测试与相关工作对比深度神经网络 DNNS的覆盖测试激活模式形式化测试覆盖标准测试覆盖率指标 具体覆盖要求Lipschitz连续性神经元覆盖率…

【论文翻译】 Clustering by Passing Messages Between Data Points

论文题目:Clustering by Passing Messages Between Data Points 论文来源:Clustering by Passing Messages Between Data Points 翻译人:BDMLCQUT实验室 Clustering by Passing Messages Between Data Points Brendan J. Frey* and Delbert …

二维泊松方程求解--点迭代法

本文目录 1. 问题描述1.1. 泊松方程1.2. 算例 2. 区域离散和方程离散2.1. 边界条件 3. 代数方程组求解3.1. 雅可比迭代3.2. 高斯-赛德尔迭代3.3. SOR迭代3.4. 迭代收敛标准3.5. 迭代法收敛的分析3.6. 上述迭代方法的计算结果 4. 代码 1. 问题描述 本算例来自B站Up主“Red-Gree…

【论文翻译】Clustering by Passing Messages Between Data Points

论文题目:Clustering by Passing Messages Between Data Points 论文来源:Clustering by Passing Messages Between Data Points 翻译人:BDMLCQUT实验室 Clustering by Passing Messages Between Data Points Brendan J. Frey* and Delbert…

数值计算:线性方程组求解及应用

文章目录 一. 实验目的二. 实验内容、过程及结果实验一:使用直接法求解线性方程组①高斯消去法:②列主元法: 实验二:使用迭代法求解线性方程组①Jacobi 迭代法②Gauss-Seidel 迭代法③逐次超松弛迭代法④共轭梯度法⑤令n10、50、1…

A Survey on Knowledge Graphs___Representation, Acquisition and Applications.知识图谱综述:表示,获取,应用

知识图谱综述:表示、获取及应用 这是研究生第一篇综述文章,第一次读也是花了好几天的时间。 摘要:人类的知识提供了对世界的一种形式的理解。表征实体之间结构关系的知识图已成为认知和人的智能研究的热门方向。在这个调查中,我们提供了一…

【中科院】分子生物学-朱玉贤第四版-笔记-第14-16讲 真核生物基因表达调控

第14-16讲 真核生物基因表达调控 文章目录 10. 真核生物基因表达调控10.1 转录水平的调控 (transcriptional regulation)10.1.1 转录起始调控 Transcriptional initiation10.1.2 组蛋白修饰10.1.3 DNA 甲基化 10.2 转录后水平的调控 (post-transcriptional regulation)10.2.1 前…

线性系统理论笔记

文章目录 三、系统的数学描述3.2 输入输出描述二、初始松弛概念三、线性性质四、因果律五、松驰性六、时不变性七、传递函数阵 小结3.3 状态变量描述3.4 输入输出描述和状态变量描述的关系3.5 组合系统的数学描述一、时变情形二、时不变情形 四、线性动态方程和脉冲响应矩阵4.2…

2.2 SIMPLE系列算法 | 2.3 PISO算法(OpenFOAM理论笔记系列)

2.2 SIMPLE系列算法 2.2.1标准SIMPLE算法 SIMPLE算法(Semi-Implicit Method for PressureLinked Equations)1最初被设计用来求解稳态问题,即控制方程中不包含瞬态项的计算。按照1.3.3节的约定,我们假设计算开始的时候有初始的压力和速度值 P o , U o ⃗…

8月20日计算机视觉理论学习笔记——图像分割

文章目录 前言一、图像分割1、传统图像分割(1)、基于阈值的分割方法(2)、基于边缘的分割方法(3)、基于区域的分割方法(4)、基于图论的分割方法 二、人脸检测1、级联分类器(1)、Boosting 分类器 三、行人检测1、梯度2、HOG 方向梯度直方图(1)、梯度计算(2)、Block 拆分(3)、HOG计…

智能反射面(IRS)在无线通信安全领域应用的论文复现

引言 Zhang Rui老师的将IRS引入无线通信安全的论文《Secure Wireless Communication via Intelligent Reflecting Surface》有较高的引用量,在此给出要论文的复现及代码。 主要问题 该论文的目的是引入IRS并联合优化基站的主动式波束和IRS的被动式波束&#xff0…

线性方程组6种数值解法的对比研究

线性方程组数值解法实验研究 一、实验目的 熟悉求解线性方程组的有关理论和方法;会编写Gauss消去法、LU分解法、Jacobi迭代法、Gauss-Seidel迭代法、超松弛(SOR)迭代法及共轭梯度法的程序;通过实际计算,进一步了解各种方法的优缺点&#xf…