代码提交那点事

文章强调了编写有意义的GitCommitMessage的重要性,提出了包括类型(feat,fixed,refactor)和主题的结构化规范。通过使用gitrebase进行提交合并,以保持提交历史的清晰。此外,文章还介绍了如何通过GitLab应用与PingCode任务关联,提升开发协作效率。
摘要由CSDN通过智能技术生成

baf6d4820e4fcfb4975f708d935bddb7.png

现在,代码的版本管理大多都在使用 git,常用的一些代码托管平台有:Github、码云、Gitlab 等,不管用的哪个平台,我们经常会做提交代码的操作,但很容易忽视 commit message 的写法。

在一些工具中进行代码提交,提交信息是必填的,正因为是必填,就会出现很多随意的内容,例如:ok、update、test 等,这些毫无意义的信息内容会给后续工作带来很多麻烦。

所以,春节后上班第一件事就是在团队内强调提交信息的重要性,并制定统一规范。很多时候做不好,不是能力问题,而是态度问题。

在提交信息的规范上可以按照下面三个方面来做:

1、规范信息的写法;

2、提交信息的合并;

3、提交和任务关联。

规范信息的写法

commit message 通常包括两个部分:header、body ,如下:

<type>: <subject>   //冒号使用西文
//空一行
<body>

header

header 部分只有一行,包括两个字段:type(必须) 和 subject(必须),type  和 subject 之间使用西文冒号和一个空格隔开。

type

用于说明 commit 的类别,只允许使用下面 3 个类别。类别不宜弄的太多,太多了开发人员在提交代码时会带来负担。下面这三个类别我认为几乎可以包含所有情况了:

  • feat:新功能(feature)

  • fixed:修复 bug

  • refactor:重构(即不是新增功能,也不是修改 bug 的代码修改)

subject

提交信息的标题,一句话总结提交的信息,尽量做到既简洁,又详细。

body(非必填)

body 部分是对本次  commit 的详细描述,可以分成多行,body 和 header 中间空一行。body 为非必填内容,如果 subject 中能说明白了,body 就可以空着。

如果你觉得一次 commit 的内容中包含下面一些情况,就可以在 body 中写明:

  • 有相关联影响点的;

  • 内容相对较多,subject 不能完全描述的;

  • 提交内容包含特殊的意图。

提交合并

有了标准的规范后,提交的信息统一了、可读性更强,但有时在开发一个特性或修改一个 Bug 时,会 commit 很多次代码,这些提交目的其实是一个,如果能将这些 commit 记录合并起来,整体的提交信息记录就更加清晰。

将多个 commit 提交进行合并,需要用到 git 的 rebase 功能,下面进行一个简单的演示来看看 rebase 怎么使用:

1、在 gitlab 上创建一个示例项目 rebase_test;

2、将项目拉到本地,添加 README.md 文件,并推送到 gitlab ;

3、分三次修改 README.md 文件,进行三次 commit ,使用 git log 查看看提交记录如下:

70a6d686582fde42c2a36616d4ea19c8.jpeg

4、将提交 push 到 gitlab ,在 gtilab 中显示如下:

fdea40b9a59129ef42bc4a94263cf9b5.jpeg

5、现在要将这三次提交合并为一次,在 git 命令行执行:

git rebase -i 740aa70a
  • -i :代表交互式操作;

  • 740aa70a :表示第一个提交的 commit id,取前几位就行。

6、按下图红框部分进行内容的修改,然后保存:

c339ea4884976ce6ddee34fb5dfbe768.jpeg

7、将三次修改的提交信息进行合并:

04d4147df35014221623d7039ed9f5a6.jpeg

8、使用 git log 看提交信息的记录,会发现已经进行了合并:

cb99bec51068ede62dbd599b7a15c37c.jpeg

和任务关联

在 git 中的每次提交,都是跟具体的任务相关,正常的迭代任务、Bug 任务等,如果能将任务和代码提交记录进行关联,对于后续的问题排查和查找修改记录会有很大帮助。

起初的想法是将任务的编号写到提交信息的 header 部分:

<type>: <taskNumber> <subject> 
//空一行
<body>

后来发现在 pingcode 的应用市场中有一个 Gitlab 应用,可以到达提交和任务关联的目的。恰好,我们团队也正在使用 pingcode 。

Gialab 应用的介绍是这样的:

GitLab 是由 GitLab Inc.开发的一款基于 Git 的完全集成的软件开发平台。GitLab在国内最广为人知的功能当属代码托管,这源于其基于Ruby on Rails的开源项目属性。GitLab App是由PingCode Labs开发的一款工具,它可以将GitLab的Commit、Branch、Merge Request关联到 PingCode 的工作项中。

详细的配置可以参考:

https://apps.pingcode.com/gitlab/configuration

最终任务关联后的效果如下:

6357d86623f50a60c735789cd6ec2e01.jpeg

在 pingcode 的任务界面中可以看到代码的分支、提交记录和 pull reqeust 记录,点击提交记录可以直接跳转到 Gitlab 中对应的页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值