5

git~issue在github/gitlab中的使用 - 张占岭

 7 months ago
source link: https://www.cnblogs.com/lori/p/18003029
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文档适用于github和gitlab

issue介绍

GitHub 中的 issue 功能是一种用于跟踪项目中任务、缺陷、功能请求和讨论的工具。通过 issue,项目成员可以提出问题、报告 bug、请求新功能,进行讨论,并且能够将 issue 与代码变更(比如 pull request)关联起来,以便更好地进行协作和项目管理。

以下是 GitHub 中 issue 功能的一些特点和用途:

  1. 创建和分配任务:可以使用 issue 来记录需要完成的任务,包括 bug 修复、功能开发等,然后对这些任务进行分配给团队成员。

  2. bug 追踪:开发人员和用户可以通过 issue 报告发现的 bug,然后进行跟踪和解决。

  3. 讨论和建议:项目成员可以在 issue 中进行讨论、提出新的想法和建议,从而促进项目的进步和改进。

  4. 标记和筛选:可以为 issue 添加标签(label)和里程碑(milestone),以便对任务进行分类和筛选。

  5. 关联代码变更:可以将 issue 与具体的代码变更(如 pull request)关联起来,以便更好地追踪代码变更背后的原因和需求。

  6. 自动关闭:通过在 commit message 或者 pull request 描述中加入特定的关键词和 issue 编号,可以实现当代码变更被合并后自动关闭相关的 issue。

总之,GitHub 中的 issue 功能为团队协作和项目管理提供了一个灵活而强大的工具,有助于提高项目的可见性、协作效率和质量管理水平。

issue实践

一 Issue label的定义,可以按着类型对issue打标签,如文档、bug、新功能、测试用例、线上bug等等。

o_240202051935_image-20240123172017441.png

下面选自阿里higress的label定义规范

提交消息可以帮助审稿人更好地理解提交 PR 的目的是什么。它还可以帮助加快代码审查过程。我们鼓励贡献者使用显式的提交信息,而不是模糊的信息。一般来说,我们提倡以下提交消息类型:

  • docs: xxxx. For example, "docs: add docs about Higress cluster installation".
  • feature: xxxx.For example, "feature: use higress config instead of istio config".
  • bugfix: xxxx. For example, "bugfix: fix panic when input nil parameter".
  • refactor: xxxx. For example, "refactor: simplify to make codes more readable".
  • test: xxx. For example, "test: add unit test case for func InsertIntoArray".

其他可读和显式的表达方式。

二 根据bug或者需求建立issue,支持markdown(md)语法,一直认为,md文件阅读起来对开发人员更加友好,简洁+清晰是我们喜欢的。

o_240202051935_create-issue.png

三 分支代码修改完成,提交时,commit 与issue关联,或者在申请RP/MR时,关联对应的issue id,一般情况下,在团队开发时,为了保证代码的健壮与安全,我们会将分支代码推到远程,通过合并请求的方式,由多人进行分别审核,都审核通过,你的代码才能合并到目标分支,在合并请求描述时,可以添加issue的关联关系,如fix #1,表示修复的issue is为1的bug。

o_240202051935_merge-request.png

四 分支审核之后,合并到目标分支后,对应的issue将会自动关闭

o_240202051935_auto-close-issue.png

五 commit合并后,关联issue自动全闭的关键字总结,如果觉得关键字太多,你就使用1种也是可以的,如closes #1,表示合并到目标分支后,自动关闭issue 1。

  • Close, Closes, Closed, Closing, close, closes, closed, closing
  • Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing
  • Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving
  • Implement, Implements, Implemented, Implementing, implement, implements, implemented, implementing

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK