当前位置: 首页 > 科技观察

不要乱提交代码,你必须知道Git分支开发规范!

时间:2023-03-12 07:16:05 科技观察

Git是最流行的源代码管理工具。为了规范开发,保持代码提交记录和git分支结构清晰,方便后续维护,现规范git的相关操作。分支命名1.master分支master为主分支,也是用来部署生产环境的分支,保证master分支的稳定性。master分支一般由develop和hotfix分支合并,不能随时直接修改代码。2.develop分支develop为开发分支,始终维护最新完成和bug修复的代码。一般在开发新功能时,都会在develop分支的基础上创建feature分支。featurebranch在开发新功能时,在develop的基础上创建一个feature分支。分支命名:feature/开头的是feature分支,命名规则:feature/user_module,feature/cart_modulelease分支release是预发布分支,在release测试阶段,release分支代码会作为benchmark测试.当一组特性开发完成后,会先合并到开发分支,进入测试时再创建发布分支。如果测试过程中有bug需要修复,开发者会在release分支上直接修复并提交。测试完成后,release分支合并到master和development分支。此时master是最新的代码,用于在线。hotfixbranch分支命名:hotfix/以fix分支开头,其命名规则与feature分支类似。当线上出现紧急问题,需要及时修复。使用master分支作为基线来创建一个hotfix分支。修复完成后,需要合并到master分支和develop分支。添加新功能的常见任务(dev)$:gitcheckout-bfeature/xxx#Fromdevbuildfeaturebranch(feature/xxx)$:blabla#development(feature/xxx)$:gitaddxxx(feature/xxx)$:gitcommit-m'commitcomment'(dev)$:gitmergefeature/xxx--no-ff#将feature分支合并到dev中以修复紧急bug(master)$:gitcheckout-bhotfix/xxx#从master创建一个hotfix分支(hotfix/xxx)$:blabla#Development(hotfix/xxx)$:gitaddxxx(hotfix/xxx)$:gitcommit-m'commitcomment'(master)$:gitmergehotfix/xxx--no-ff#将hotfix分支合并到master中,然后去上线到生产环境(dev)$:gitmergehotfix/xxx--no-ff#将hotfix分支合并到dev,同步代码测试环境代码(release)$:gitmergedev--no-ff#将dev分支合并到release,然后拉入测试环境测试生产环境上线(master)$:gitmergerelease--no-ff#put发布测试代码合并到master中,运维人员操作(master)$:gittag-av0.1-m'deploymentpackageversionname'#命名版本,标记日志规范在团队协作项目中,开发人员需要经常提交一些代码来修复bug或实现新功能。关注公众号Java技术栈,后台回复git获取更多git教程。而项目中的文件,实现什么功能,解决什么问题都会逐渐被遗忘,最后需要浪费时间去阅读代码。但是编写好的日志规范提交信息对我们有帮助,也反映了一个开发者是否是一个好的合作者。编写良好的Commit消息可以达到三个重要目的:加快审查过程,帮助我们编写好的版本发布日志,以便后续维护人员了解代码和功能添加的具体更改原因。目前,社区有多种Commit消息编写规范。从Angular规范来看是目前使用最广泛的一种写法,比较合理和系统。如下图所示:Commit消息的基本语法目前业界广泛使用的是《AngularGitCommitGuidelines》https://github.com/angular/angular.js/blob/master/DEVELOPERS.md#-git-commit-guidelinesspecific格式为::

type:本次commit的类型,如bugfixdocsstyle等scope:受影响的范围bythiscommitsubject:aconnectiveexplanation本次commit的目的是强调原文中的几点:使用祈使句,是熟悉还是陌生?词尾不要大写,不加标点符号。正文:也用祈使句。在主要内容中,我们需要把这个commit给出详细的描述,比如这次改变的动机。如果需要改变行,使用|footer:describethecategorydescriptionoftheissueorbreakchangeTypeassociated有了它:壮举:添加新功能修复:修复错误文档:仅修改了文档style:只修改空格、格式缩进等,不改变代码逻辑refactor:代码重构,无新功能或bug修复perf:addcodeforperformancetestingProcess,oradddependentlibraries,tools等Commitmessages格式要求#Title行:50个字符以内,描述主要变化内容##Maincontent:更详细的描述文字,建议72个字符以内。需要描述的信息包括:##*为什么需要这个改变?它可能被用来修复一个bug,添加一个特性,提高性能、可靠性、稳定性等等。#*他是如何解决这个问题的?详细描述解决问题的步骤#*有没有副作用,风险?##如有需要,可以添加问题地址或其他文档的链接