1.1. 一、Git 客户端基本配置

1.1.1. 拉取分支

为了使提交路线图更清晰,在拉取代码的时候,统一使用 git pull --rebase ,而不是 git pull

可以通过以下命令,全局设置所有的分支 git pull 操作均使用 --rebase

1<br/>2<br/>3git config --global pull.rebase<span> </span>`true<br/> <br/>git config --global branch.autoSetupRebase always`

1.1.2. 合并分支

合并分支使用 --no-ff

默认情况下,Git 执行 快进式合并(fast-farward-merge) ,会直接将 main 分支指向 dev 分支。

使用 --no-ff 参数后,会执行正常合并,在 main 分支上生成一个新的节点。为了保证版本演进的清晰,我们采用这种做法。

1.2. 二、分支命名规范

  • main 分支:线上稳定版本分支。
  • develop 分支:开发分支,衍生出 feature 分支和 release 分支。
  • release 分支:发布分支,准备待发布版本的分支,可以存在多个。
  • feature 分支:功能分支,完成特定功能开发的分支,可以存在多个。
  • hotfix 分支:紧急热修复分支,存在多个,紧急修复之后删除。

1.2.1. main 分支

  • 主分支,永远处于稳定状态,对应当前线上版本。
  • 不允许在该分支上直接提交代码。

1.2.2. develop 分支

  • 开发分支,包含了项目最新的功能和代码,所有开发都依赖该分支进行。
  • 不允许在该分支上直接提交代码。

1.2.3. feature 分支

  • 功能分支,开发新功能的分支。
  • develop 分支新建出 feature 分支。
  • 分支名称以 feature-* 形式命名,如:feature-moranique
  • 开发完成后,合并回 develop 分支并且删除该分支。
  • 如果是多人合作一个 feature,则应该在 feature-* 的分支基础上切出各自的分支,命名方式应以 feature-FeatureName-Author 形式命名,如:feature-moranique-hcryeo

1.2.4. release 分支

  • 发布分支,新功能合并到 develop 分支,准备发布新版本时使用的分支。
  • develop 分支完成功能合并和 BUG 修复,准备发布新版本时,切出一个 release 分支,来做发布前的准备。
  • 分支名称以 release-* 形式命名,如:release-1.0.0
  • 发布之前发现的 BUG 就直接在该分支上进行修复,确定准备发版后就合并到 main 分支完成发布,同时合并到 develop 分支。

1.2.5. hotfix 分支

  • 紧急修复线上 BUG 分支。
  • 当线上版本出现 BUG 时,从 main 分支切出一个 hotfix-* 分支,如:hotfix-moranique,完成 BUG 修复。
  • 完成修复后,将该分支合并到 main 分支和 develop 分支(如果此时存在 release 分支,则也应该合并到 release 分支),合并完成后删除该分支。

1.3. 三、分支操作流程

上面这张图是一张标准的 Git Flow 流程图,可能乍一眼看上去感觉很复杂,其实只要静下心来看一看就会发现其实一点都不复杂。

接下来,我们以开发 feature-A 为例,按照 时间线 上的顺序,用语言描述一下整个流程:

  1. 切换到 develop 分支,拉取最新代码;
  2. develop 分支检出 feature 分支,开发新功能;
  3. 完成 feature 分支完成,合并到 develop 分支;
  4. 当某个版本所有的 feature 分支均合并到 develop 分支,就可以检出 release 分支,准备发布新版本,提交测试并直接在 release 分支进行 BUG 修复;
  5. release 分支上的所有 BUG 修复完成后,main 分支和 develop 分支都需要合并 release 分支的代码,准备发布新版本;
  6. 线上 main 分支出现 BUG 修要紧急修复,则在 main 分支检出 hotfix 分支进行修复,然后 main 分支和 develop 分支都需要合并 hotfix 分支的 BUG 修复代码。
最后修改:2023 年 03 月 06 日
如果觉得我的文章对你有用,请随意赞赏