关于git:我敢打赌这是全网最全的-Git-分支开发规范手册

1次阅读

共计 2526 个字符,预计需要花费 7 分钟才能阅读完成。

Git 是目前最风行的源代码管理工具。为标准开发,放弃代码提交记录以及 git 分支构造清晰,不便后续保护,现标准 git 的相干操作。

分支命名

1、master 分支

master 为主分支,也是用于部署生产环境的分支,确保 master 分支稳定性,master 分支个别由 develop 以及 hotfix 分支合并,任何工夫都不能间接批改代码

2、develop 分支

develop 为开发分支,始终保持最新实现以及 bug 修复后的代码,个别开发的新性能时,feature 分支都是基于 develop 分支下创立的。

feature 分支

  • 开发新性能时,以 develop 为根底创立 feature 分支。
  • 分支命名: feature/ 结尾的为个性分支,命名规定: feature/user_module、feature/cart_module

release 分支

release 为预上线分支,公布提测阶段,会 release 分支代码为基准提测。当有一组 feature 开发实现,首先会合并到 develop 分支,进入提测时会创立 release 分支。如果测试过程中若存在 bug 须要修复,则间接由开发者在 release 分支修复并提交。当测试实现之后,合并 release 分支到 master 和 develop 分支,此时 master 为最新代码,用作上线。

hotfix 分支

分支命名: hotfix/ 结尾的为修复分支,它的命名规定与 feature 分支相似。线上呈现紧急问题时,须要及时修复,以 master 分支为基线,创立 hotfix 分支,修复实现后,须要合并到 master 分支和 develop 分支

常见工作

减少新性能

(dev)$: git checkout -b feature/xxx            # 从 dev 建设个性分支
(feature/xxx)$: blabla                         # 开发
(feature/xxx)$: git add xxx
(feature/xxx)$: git commit -m 'commit comment'
(dev)$: git merge feature/xxx --no-ff          # 把个性分支合并到 dev

修复紧急 bug

(master)$: git checkout -b hotfix/xxx         # 从 master 建设 hotfix 分支
(hotfix/xxx)$: blabla                         # 开发
(hotfix/xxx)$: git add xxx
(hotfix/xxx)$: git commit -m 'commit comment'
(master)$: git merge hotfix/xxx --no-ff       # 把 hotfix 分支合并到 master,并上线到生产环境
(dev)$: git merge hotfix/xxx --no-ff          # 把 hotfix 分支合并到 dev,同步代码

测试环境代码

(release)$: git merge dev --no-ff             # 把 dev 分支合并到 release,而后在测试环境拉取并测试

生产环境上线

(master)$: git merge release --no-ff          # 把 release 测试好的代码合并到 master,运维人员操作
(master)$: git tag -a v0.1 -m '部署包版本名'  #给版本命名,打 Tag

日志标准

在一个团队合作的我的项目中,开发人员须要常常提交一些代码去修复 bug 或者实现新的 feature。

而我的项目中的文件和实现什么性能、解决什么问题都会慢慢淡忘,最初须要浪费时间去浏览代码。然而好的日志标准 commit messages 编写有帮忙到咱们,它也反映了一个开发人员是否是良好的协作者。

编写良好的 Commit messages 能够达到 3 个重要的目标:

  • 放慢 review 的流程
  • 帮忙咱们编写良好的版本公布日志
  • 让之后的维护者理解代码里呈现特定变动和 feature 被增加的起因

目前,社区有多种 Commit message 的写法标准。来自 Angular 标准是目前应用最广的写法,比拟正当和系统化。如下图:

Commit messages 的根本语法

以后业界利用的比拟宽泛的是 Angular Git Commit Guidelines

“https://github.com/angular/an…

具体格局为:

<type>: <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • type: 本次 commit 的类型,诸如 bugfix docs style 等
  • scope: 本次 commit 波及的范畴
  • subject: 简明扼要的论述下本次 commit 的宗旨,在原文中特意强调了几点:
  • 应用祈使句,是不是很相熟又生疏的一个词
  • 首字母不要大写
  • 结尾无需增加标点

body: 同样应用祈使句,在主体内容中咱们须要把本次 commit 具体的形容一下,比方此次变更的动机,如需换行,则应用 |

footer: 形容下与之关联的 issue 或 break change

Type 的类别阐明:

  • feat: 增加新个性
  • fix: 修复 bug
  • docs: 仅仅批改了文档
  • style: 仅仅批改了空格、格局缩进、都好等等,不扭转代码逻辑
  • refactor: 代码重构,没有加新性能或者修复 bug
  • perf: 减少代码进行性能测试
  • test: 减少测试用例
  • chore: 扭转构建流程、或者减少依赖库、工具等

Commit messages 格局要求

# 题目行:50 个字符以内,形容次要变更内容
#
# 主体内容:更具体的阐明文本,倡议 72 个字符以内。须要形容的信息包含:
#
# * 为什么这个变更是必须的? 它可能是用来修复一个 bug,减少一个 feature,晋升性能、可靠性、稳定性等等
# * 他如何解决这个问题? 具体形容解决问题的步骤
# * 是否存在副作用、危险?
#
# 如果须要的化能够增加一个链接到 issue 地址或者其它文档

起源:https://juejin.im/post/684490…

正文完
 0