searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

GIT 工具在团队协作中的最佳实践

2023-12-07 02:16:32
29
0

0x00 前言

在开发团队的日常工作中,代码的版本控制是很重要的一环,目前大多数的项目,都使用 Git 作为版本控制的工具,Git 相比于其他版本控制工具,具有很多优点:

1、分布式的版本控制系统,每个本地仓库都包含完整的远程仓库文件。

2、优秀的分支管理,基于快照的文件管理机制使得分支的创建、合并、销毁等操作都变得非常轻量。

3、速度飞快,近乎所有对文件的操作都在本地执行。

下面我们就来探讨以下如何正确使用这款优秀的版本管理工具。

0x01 分支命名

分支名称能帮助我们快速了解分支的内容,最佳实践分支及其命名规则说明如下:

主分支:master(认为有歧义可遵循 Github,改为 main ,下面涉及主分支的均以 master 进行说明)

开发分支:develop

功能分支:feature-{功能名称},如 feature-upload-file

预发布分支:release-{版本号},如 release-1.1.0

普通修复分支:fix-{修复名称},如 fix-file-path

紧急修复分支:hotfix-{修复名称},如 hotfix-cache

0x02 分支管理

0x0200 分支管理流程说明

分支管理整体流程如下:

git最佳实践-如何正确使用git-flow linpxing - 一念般若生

(图片来源网络,若侵犯您的权益可请联系删除)

这里简单对上图的流程做介绍:

1、项目 Git 仓库初始化之后,我们会得到一个主分支(master),项目文件初始化之后在主分支上提交,并打上初始版本号。此分支将用作后续生产环境的部署分支。

2、从初始版本上拉出开发分支(develop),此分支将用作开发环境的部署分支。

3、项目按最小发布版本拆分出当前版本需要实现的功能点,每个功能点的开发者从开发分支中拉出功能开发分支(feature)进行开发。

4、功能开发完成后将功能分支(feature)合并到开发分支(develop)。

5、小版本的功能都开发完成并在测试环境验证通过之后,从开发分支(develop)拉出当前小版本的预发布分支(release)。

6、预发布过程中需要修复 bug,可直接在预发布分支(release)上修改提交。

7、预发布验收完成后,将预发布分支(release)合并到开发分支(develop)和主分支(master)。

8、在主分支(master)上打上版本号标签并最终发布到生产环境。

9、功能开发过程中,生产环境出现问题需要紧急修复,则从主分支(master)拉出紧急修复分支(hotfix),修复好后将紧急修复分支合并到开发分支(develop)和主分支(master),其他分支是否合并可视情况而定。

上面仅粗略说明了产品版本的发布流程,下面将对各个分支的功能及注意事项做说明。

0x0201 各分支功能及注意事项

0x020100 主分支(master)

主分支作为产品最终的发布分支,将应用到生产环境的部署当中,除了项目初始化之外,我们不应该在主分支上做任何的 commit,主分支的提交只能从 release 分支或者 hotfix 分支上合并(merge)。需要注意的是主分支(master)上的每次合并,都要打上版本号,便于做版本管理。

0x020101 开发分支(develop)

开发分支通常用作为开发环境的部署分支,该分支与主分支类似,我们也不应该在开发分支上直接做 commit,开发分支的内容可以从功能分支、预发布分支、普通修复分支和紧急修复分支上合并过来。需要注意的是每次预发布分支(release)拉出来后,开发分支上之后的 commit 就都属于下一次预发布的内容了。

0x020102 功能分支(feature)

功能分支作为最小功能点的开发分支,由对应的功能开发者创建,功能开发过程的更改均提交到对应功能分支,功能开发完成后,经过自测验证没问题后,则可合并到开发分支(develop),在测试环境中验证。需要注意的是,合并到开发分支前要先确认当前功能是否是在当前预发布版本(release)中发布,如果不是则不可合并,需等到功能可预发布了才能合。功能分支一般在开发分支合并完毕后即可删除(本地和远程都删),减少分支复杂性。

0x020103 预发布分支(release)

预发布分支通常作为于预发布环境的部署分支,在预发布版本的功能都开发完成且合并到开发分支上后,从开发分支拉出预发布分支,每个预发布分支都有预发布版本号,在预发布环境验证过程中出现的 bug 可直接在对应的预发布分支上直接修复及提交(可多次修复多次提交),预发布版本验证通过后,将当前版本的预发布分支合并到主分支上进行发布,同时还要合并到开发分支(如果有 bug 的话,没 bug 不用合,歪嘴笑.jpg),预发布分支一般保留几个最近的版本,其他都可以删掉,本地远程都可以删。

0x020104 普通修复分支(fix)

普通修复分支一般是用于修复未发布的功能的,在功能开发过程中,功能分支合并完后删掉了,此时对应功能出现 bug,但是又没有到预发布时间,则可从开发分支拉出普通修复分支,进行功能的修复及提交,之后再合并到开发分支,一般也是用完之后直接删除,本地远程都删(一般也不会推到远程)。

0x020105 紧急修复分支(hotfix)

紧急修复分支一般用于修复生产环境出现的 bug,生产环境出现问题,需要紧急修复,可以从主分支拉出紧急修复分支进行修复,修复完毕可发布到开发环境或预发布环境进行验证,验证完毕后最终发布到生产环境。紧急修复分支也是用完之后直接删除,本地远程都删(一般也不会推到远程)

0x03 提交信息(Commit Message)

0x0300 提交信息编写建议

整体建议:用一行文字简单描述本次提交的内容,如果一行放不下,需要详细说明,可以回车空一行,再详细列举说明。下面给出一些模板。

0x030000 新增功能

feat: 新增xxx功能

- 功能简单描述
- 功能简单描述

0x030001 功能修复

fix: 修复xxx

- 修复简单描述
- 修复简单描述

0x030002 代码或其他调整

opt: 调整xxx

- 调整简单描述
- 调整简单描述

0x030003 文档相关调整

doc:调整xxx文档

-  调整文档简单描述
-  调整文档简单描述

0x04 总结 

Git 作为版本控制工具在开发团队的协调与合作中起着关键的作用,规范 Git 的使用能让我们协作得更加高效,希望本文能对你有所帮助,感谢你能看到最后,谢谢。

0条评论
0 / 1000
黄****浪
4文章数
0粉丝数
黄****浪
4 文章 | 0 粉丝
黄****浪
4文章数
0粉丝数
黄****浪
4 文章 | 0 粉丝
原创

GIT 工具在团队协作中的最佳实践

2023-12-07 02:16:32
29
0

0x00 前言

在开发团队的日常工作中,代码的版本控制是很重要的一环,目前大多数的项目,都使用 Git 作为版本控制的工具,Git 相比于其他版本控制工具,具有很多优点:

1、分布式的版本控制系统,每个本地仓库都包含完整的远程仓库文件。

2、优秀的分支管理,基于快照的文件管理机制使得分支的创建、合并、销毁等操作都变得非常轻量。

3、速度飞快,近乎所有对文件的操作都在本地执行。

下面我们就来探讨以下如何正确使用这款优秀的版本管理工具。

0x01 分支命名

分支名称能帮助我们快速了解分支的内容,最佳实践分支及其命名规则说明如下:

主分支:master(认为有歧义可遵循 Github,改为 main ,下面涉及主分支的均以 master 进行说明)

开发分支:develop

功能分支:feature-{功能名称},如 feature-upload-file

预发布分支:release-{版本号},如 release-1.1.0

普通修复分支:fix-{修复名称},如 fix-file-path

紧急修复分支:hotfix-{修复名称},如 hotfix-cache

0x02 分支管理

0x0200 分支管理流程说明

分支管理整体流程如下:

git最佳实践-如何正确使用git-flow linpxing - 一念般若生

(图片来源网络,若侵犯您的权益可请联系删除)

这里简单对上图的流程做介绍:

1、项目 Git 仓库初始化之后,我们会得到一个主分支(master),项目文件初始化之后在主分支上提交,并打上初始版本号。此分支将用作后续生产环境的部署分支。

2、从初始版本上拉出开发分支(develop),此分支将用作开发环境的部署分支。

3、项目按最小发布版本拆分出当前版本需要实现的功能点,每个功能点的开发者从开发分支中拉出功能开发分支(feature)进行开发。

4、功能开发完成后将功能分支(feature)合并到开发分支(develop)。

5、小版本的功能都开发完成并在测试环境验证通过之后,从开发分支(develop)拉出当前小版本的预发布分支(release)。

6、预发布过程中需要修复 bug,可直接在预发布分支(release)上修改提交。

7、预发布验收完成后,将预发布分支(release)合并到开发分支(develop)和主分支(master)。

8、在主分支(master)上打上版本号标签并最终发布到生产环境。

9、功能开发过程中,生产环境出现问题需要紧急修复,则从主分支(master)拉出紧急修复分支(hotfix),修复好后将紧急修复分支合并到开发分支(develop)和主分支(master),其他分支是否合并可视情况而定。

上面仅粗略说明了产品版本的发布流程,下面将对各个分支的功能及注意事项做说明。

0x0201 各分支功能及注意事项

0x020100 主分支(master)

主分支作为产品最终的发布分支,将应用到生产环境的部署当中,除了项目初始化之外,我们不应该在主分支上做任何的 commit,主分支的提交只能从 release 分支或者 hotfix 分支上合并(merge)。需要注意的是主分支(master)上的每次合并,都要打上版本号,便于做版本管理。

0x020101 开发分支(develop)

开发分支通常用作为开发环境的部署分支,该分支与主分支类似,我们也不应该在开发分支上直接做 commit,开发分支的内容可以从功能分支、预发布分支、普通修复分支和紧急修复分支上合并过来。需要注意的是每次预发布分支(release)拉出来后,开发分支上之后的 commit 就都属于下一次预发布的内容了。

0x020102 功能分支(feature)

功能分支作为最小功能点的开发分支,由对应的功能开发者创建,功能开发过程的更改均提交到对应功能分支,功能开发完成后,经过自测验证没问题后,则可合并到开发分支(develop),在测试环境中验证。需要注意的是,合并到开发分支前要先确认当前功能是否是在当前预发布版本(release)中发布,如果不是则不可合并,需等到功能可预发布了才能合。功能分支一般在开发分支合并完毕后即可删除(本地和远程都删),减少分支复杂性。

0x020103 预发布分支(release)

预发布分支通常作为于预发布环境的部署分支,在预发布版本的功能都开发完成且合并到开发分支上后,从开发分支拉出预发布分支,每个预发布分支都有预发布版本号,在预发布环境验证过程中出现的 bug 可直接在对应的预发布分支上直接修复及提交(可多次修复多次提交),预发布版本验证通过后,将当前版本的预发布分支合并到主分支上进行发布,同时还要合并到开发分支(如果有 bug 的话,没 bug 不用合,歪嘴笑.jpg),预发布分支一般保留几个最近的版本,其他都可以删掉,本地远程都可以删。

0x020104 普通修复分支(fix)

普通修复分支一般是用于修复未发布的功能的,在功能开发过程中,功能分支合并完后删掉了,此时对应功能出现 bug,但是又没有到预发布时间,则可从开发分支拉出普通修复分支,进行功能的修复及提交,之后再合并到开发分支,一般也是用完之后直接删除,本地远程都删(一般也不会推到远程)。

0x020105 紧急修复分支(hotfix)

紧急修复分支一般用于修复生产环境出现的 bug,生产环境出现问题,需要紧急修复,可以从主分支拉出紧急修复分支进行修复,修复完毕可发布到开发环境或预发布环境进行验证,验证完毕后最终发布到生产环境。紧急修复分支也是用完之后直接删除,本地远程都删(一般也不会推到远程)

0x03 提交信息(Commit Message)

0x0300 提交信息编写建议

整体建议:用一行文字简单描述本次提交的内容,如果一行放不下,需要详细说明,可以回车空一行,再详细列举说明。下面给出一些模板。

0x030000 新增功能

feat: 新增xxx功能

- 功能简单描述
- 功能简单描述

0x030001 功能修复

fix: 修复xxx

- 修复简单描述
- 修复简单描述

0x030002 代码或其他调整

opt: 调整xxx

- 调整简单描述
- 调整简单描述

0x030003 文档相关调整

doc:调整xxx文档

-  调整文档简单描述
-  调整文档简单描述

0x04 总结 

Git 作为版本控制工具在开发团队的协调与合作中起着关键的作用,规范 Git 的使用能让我们协作得更加高效,希望本文能对你有所帮助,感谢你能看到最后,谢谢。

文章来自个人专栏
GIT学习
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0