工作中如何打造优雅的Git工作流和Commit规范!

这篇具有很好参考价值的文章主要介绍了工作中如何打造优雅的Git工作流和Commit规范!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

🤓Git大家都非常熟悉了,就不做过多介绍,但是如何用好Git、如何进行合理的分支开发、Merge你是否有一个规范流程呢?💤

不论是一个团队一起开发一个项目,还是自己独立开发一个项目,都少不了要和Git打交道,这些都是作为开发者必须要掌握的。每个团队也许有自己的Git工作流,今天小许给你分享一个通用的流程和规范。

既然说到Git得先有个协同原则📜:

统一使用Git作为版本控制的主要工具。

统一使用GitFlow流程管理控制版本

📚 全文字数 : 5k

⏳ 阅读时长 : 6min

📢 关键词 : Git命令、工作流、分支规范、Commit Messages规范

基本命令操作

我们来看下git的基本操作,这些命令基本可以完成我们日常对代码版本开发合并需求,同时小许在文末给老板们准备了一份【Git命令大全】,值得你收藏!

git add . :将变更从工作目录移至暂存区域

git commit -m “fix: xxx” :将暂存区中的文件提交到本地仓库中分支中

git pull:用于从远程获取代码并合并本地的版本

git push:用于从将本地的分支版本上传到远程并合并

这些操作命令在各个工作区、仓库之间如何进行流转的呢?如下图

工作中如何打造优雅的Git工作流和Commit规范!,其他,git,代码规范

git有好几个区,工作区(workspace)、暂存区(indexStage)、本地仓库(local repository)、还有远程仓库(remote repository)。

远程仓库为我们保存一份代码,如github,而工作区、暂存区和本地仓库都在本地

常用分支建议

前面简单讲了下代码提交流程,但是版本控制并不是简单代码提交就完事了,这里分享一些常用的分支开发,但并不是任何项目都一定按照这种分支结构来定义,按你的需求来确定需要哪些。比如你一个人开发一个小型项目,那么就不用搞的那么复杂,如果是多人协同开发版本迭代较快,那么下面的分支内容会让你开发节奏更清晰合理!

工作中如何打造优雅的Git工作流和Commit规范!,其他,git,代码规范

生产分支(master)‌

master分支是仓库的主分支,也有人叫production分支,这个分支包含最近发布到生产环境的代码,最近发布的release, 这个分支只能从其他分支合并,不能在这个分支直接修改‌

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

开发分支(develop)‌

这个分支是我们的主开发分支,始终保持最新完成以及bug修复后的代码.

包含所有要发布到下一个release的代码,这个主要合并与其他分支,比如feature分支‌

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

补丁分支(hotfix)‌

当我们在生产环境发现新的Bug时候,我们需要基于master分支创建一个hotfix分支,然后在hotfix分支上修复bug

完成hotfix后,我们要把hotfix分支合并回master和develop分支‌,所以hotfix的改动会进入下一个release

发布分支(release)‌

当你需要发布一个新功能的时候,要基于develop分支创建一个release分支

在release分支做为基准进行测试并修复bug,完成release后,把release合并到master和develop分支‌

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

功能分支(feature)‌

feature分支主要是用来开发一个新的功能,一旦开发完成,我们合并回develop分支,然后提交合并请求到 release 分支进行提测。

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

Git工作流

上面那么多种分支类型,而且不同的分支又是基于其他分支,每次看完之后都记得,但是结合起来发现仅仅停留在有印象,是的,我们不好从单纯的文字上理清分支之间的关系和合并方式。

没关系,小许用个图把之间的关系梳理清楚:

工作中如何打造优雅的Git工作流和Commit规范!,其他,git,代码规范

其实核心是要弄明白主干和各个开发分支的关系,以及你的开发分支该和谁去合并。

不过还是那句话根据自己的项目和业务团队去指定Git工作,不能为了更风去创建并不适合团队的分支,不然会导致开发在无聊的敲命令,花费时间在各种分支的合并上,反而降低了效率。

适合别人的未必适合大家,互相交流,选择合适自己的!

更多方位的流程,大家可以看看这篇文章# 字节研发设施下的 Git 工作流

Commit编写规范

好的Commit messages 日志编写会带来极大的帮助,它也反映了一个开发人员是否是良好的协作者,更重要的是在后续修复bug和实现新的feture时,对于之前实现的功能、解决的bug可以一目了然,而不用通过阅读代码去了解曾经的实现,因为这会是意见非常痛苦的事情!

忘了说,你的Commit messages会是Code Review人员参考基本,你应该不想被无情的打回吧?😅😅😅

目前,社区有多种 Commit messages 的写法规范。来自Angular (前端框架)规范是目前使用最广的写法,比较合理和系统化。

其实浏览过Github开源项目的同学,如果有注意Pull requests的话就有了解,行我们看下Angular的提交规范到底是咋样的,为啥会成为参考标杆🚩🚩🚩。

工作中如何打造优雅的Git工作流和Commit规范!,其他,git,代码规范

Commit messages提交可以参照以下格式

<type>: <subject>
<BLANK LINE> 空白行
<body>
<BLANK LINE> 空白行
<footer>
  • type: 本次 commit 的类型,诸如 bugfix docs style 等

  • scope: 本次 commit 波及的范围

  • subject: 简明扼要的阐述下本次 commit 的主旨,在原文中特意强调了几点 :

    . 使用祈使句,是不是很熟悉又陌生的一个词,来传送门在此 祈使句

    . 首字母不要大写

    . 结尾无需添加标点

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

  • footer: 描述下与之关联的 issue 或 break change

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

标题行:50个字符以内,描述主要变更内容

主体内容:更详细的说明文本,建议72个字符以内。 需要描述的信息包括:

  • 为什么这个变更是必须的? 它可能是用来修复一个bug,增加一个feature,提升性能、可靠性、稳定性等等

  • 他如何解决这个问题? 具体描述解决问题的步骤

  • 是否存在副作用、风险?

如果需要的化可以添加一个链接到issue地址或者其它文档

来看这个这位老哥在Angular项目详细的commit信息,大家可以对照上面的规范看,可以用一个词描述这种好的Commit方式【“赏心悦目”】,也许这也就是为什么这个项目的Commit会成为众多人模仿的原因吧!

工作中如何打造优雅的Git工作流和Commit规范!,其他,git,代码规范

关于名词简称

软件团队中经常需要Git进行团队协作开发,但是不少职场小宝朋友对于从大佬口中冒出来的一些字母缩略词一脸蒙蔽,比如MR、CR,这里一次说个明白,让你不再迷茫各种简称,哈哈!

这里总结了一些,

  • CR:Code Review. 请求代码审查。
  • PR: pull request. 拉取请求,给其他项目提交代码。
  • MR: merge request. 合并请求
  • ACK:Acknowledgement. 承认,同意。表示接受代码的改动。
  • TL;DR:Too Long; Didn’t Read. 太长懒得看。常见于README文档。
  • WIP:Work In Progress. 进展中,主要针对改动较多的 PR,可以先提交部分,标题或 Tag 加上 WIP,表示尚未完成,这样别人可以先 review 已提交的部分。
  • RFC:Request For Comment. 请求进行讨论,表示认为某个想法很好,邀请大家一起讨论一下

最全Git命令

在文章末尾,分享一下收藏的一个非常全面的Git命令总结,分享给大家!工作日愉快各位

工作中如何打造优雅的Git工作流和Commit规范!,其他,git,代码规范

文末安利一波:

欢迎朋友们关注我的同名公众号📢📢:【小许code】,等你哦!🤣🤣

欢迎点赞 👍、收藏 💙、关注 💡 三连支持一下~🎈

🎈知道的越多,不知道的也越多,我是小许,下期见~🙇💻

参考:字节研发设施下的 Git 工作流文章来源地址https://www.toymoban.com/news/detail-810724.html

到了这里,关于工作中如何打造优雅的Git工作流和Commit规范!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git工作流 仓库提交与合并

    目录 1、Git工作流 2、实施   2.1、工作流​编辑  2.2、远程分支结构  2.3、开发人员分支新建  2.4、保持与Develop同步   在使用Git Flow工作模式时,业界普遍遵循的规则: 所有开发分支从develop分支拉取。 所有hotfix分支从master分支拉取。 所有在master分支上的提交都必须要有标签

    2024年02月12日
    浏览(32)
  • 一步到位!快速精通Git工作流及实战技巧详解

    Git是一个分布式版本控制系统。 1.备份 小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。 场景二:代码还原 这个项目中需要一个很复杂的功能,老王摸索了一个星期终于有眉目了,可是这被改得面目全非的

    2024年03月15日
    浏览(45)
  • Git之GitFlow工作流 | Gitflow Workflow(万字整理,已是最详)

    目录 🩸 写在前面 一、 GitFlow 介绍 1.1 什么是 GitFlow 1.2 GitFlow 常用分支说明 1.3 Git flow中的分支介绍 1.3.1 主要分支(Master) 1.3.2 开发分支(Develop) 1.3.3 功能分支(Feature) 1.3.4 预发分支(Release) 1.3.5 热修复分支(Hotfix) 1.4 GitFlow 工作流程 二、GitFlow 实践 2.1 创建 develop 分支

    2024年02月17日
    浏览(27)
  • github使用workflow工作流git push后自动打包部署github pages

    根目录新建.github/workflows/docs.yml .github/workflows/ 目录是用于存放 GitHub Actions 工作流程文件的目录,该目录的文件名必须以 .yml 或 .yaml 为后缀名,否则 GitHub 将无法识别该文件为工作流程文件。这些工作流程文件可用于自动化执行项目中的各种任务,例如构建、测试、部署等。

    2024年02月10日
    浏览(41)
  • [AIGC] 如何设计和实现工作流的审批项目?

    工作流的审批项目是指一个系统化、可重复的审批过程,它能够帮助你更有效地完成审批任务和达成目标。无论你是一个项目经理、一个审批官还是一个企业主管,设计和实现工作流的审批项目都是一个重要的步骤。 工作流的审批项目能够帮助你: 节省时间:工作流的审批

    2024年02月19日
    浏览(25)
  • 如何创建和填写 PDF 表单,简化您的文档工作流

    阅读本文,了解如何在开源办公套件 ONLYOFFICE 中创建和填写 PDF 表单。 ONLYOFFICE  表单 首个版本 发布于 2022 年 1 月 18 日,是   ONLYOFFICE 版本 7.0   更新的一部分 。 您可以使用 ONLYOFFICE   表单,创建 各种类型的 模板 文档 ,包括 法律协议、合同、报告、录取 表单 、 调查问卷

    2024年02月22日
    浏览(30)
  • 中东 Shopify 如何使用 Bytebase 构建一站式数据库开发工作流

    Salla 是一家 2016 年成立,位于沙特麦加的自建站电商平台。 作为中东 Shopify,其最大的特点是支持阿拉伯语建站,并且提供更多适应中东地区特点的本地化服务。截止目前,已有 47,000 家店铺入驻 Salla,商品销售总额达到了 43 亿美元,近三年保持了接近 100% 的增速。 与 Sall

    2024年02月09日
    浏览(31)
  • 设计模式学习笔记 - 设计模式与范式 -行为型:8.状态模式:游戏、工作流引擎中常用的状态机是如何实现的?

    本章学习状态模式。在实际的开发中,状态模式并不是很常用,但是在能够用到的场景里,它可以发挥很大的作用。从这一点上看,它有点像我们之前讲到的组合模式。 状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式

    2024年04月10日
    浏览(30)
  • 【工作流】Activiti工作流简介以及Spring Boot 集成 Activiti7

    什么是工作流? 工作流指通过计算机对业务流程进行自动化管理,实现多个参与者按照预定义的流程去自动执行业务流程。 文章源码托管:https://github.com/OUYANGSIHAI/Activiti-learninig Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、

    2024年02月08日
    浏览(38)
  • 云原生离线工作流编排利器 -- 分布式工作流 Argo 集群

    作者:庄宇 在现代的软件开发和数据处理领域,批处理作业(Batch)扮演着重要的角色。它们通常用于数据处理,仿真计算,科学计算等领域,往往需要大规模的计算资源。随着云计算的兴起,阿里云批量计算和 AWS Batch 等云服务提供了管理和运行这些批处理作业的平台。 随

    2024年01月24日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包