Git 分支工作之一- Git Flow
开场白
在使用git进行源代码管理时,您采用了什么样的分支策略?

在不同的项目之间,规范可能存在较大差异,甚至在同一个项目中,细细观察也能发现每个人在操作上都有一些微妙的个人习惯。
前者很好。根据项目规模等因素,令人满意的分支策略可能会有所不同。
但是如果分支工作太随意,可能会在迁移项目时导致混乱。
那个选项不好。可能会导致他的开发分支缺少必要的开发功能,或者混入了多余的内容,或者标签使用出错,可能会出现奇怪的问题。
因此,我会调查市井中存在的分支工作。
这次是关于git flow的问题
-
- git flow ← ココ
-
- github flow
- gitlab flow
Git flow(一个成功的Git分支模型)

突然看到这个图有点复杂。
尝试集中地看每个分支。
开幕的分支
名称役割分岐元マージ先備考master(main)デプロイ可能な環境を保持する。–削除しない。develop次のリリースに向けた開発用master-削除しない。feature機能ごとの開発用developdevelopdevelop へのマージ時には git merge –no-ff が推奨される。releaseバージョン番号の準備やマイナーなバグフィックスなど、開発タスク外のリリースの準備を行う。developmaster, develop
hotfixリリース済みバージョンに対する緊急度の高い修正を行う。mastermaster, develop
(bugfix)緊急度の低いバグフィックスを行うdevelopdevelop
(support)旧バージョンの保守とリリースを行う。master-同時に複数のメジャーバージョンを管理する場合必要になってくる。
hotfixリリース済みバージョンに対する緊急度の高い修正を行う。mastermaster, develop
(bugfix)緊急度の低いバグフィックスを行うdevelopdevelop
(support)旧バージョンの保守とリリースを行う。master-同時に複数のメジャーバージョンを管理する場合必要になってくる。
在原始图中没有bugfix和support。
一些分支有命名规则(要添加)。
概括一下
-
- 在项目开始时,从 master 创建 develop。
-
- 从 develop 逐个功能创建 feature,并在此处进行个人开发工作。
-
- 完成功能开发后,如果要立即包含在下一个发布中,则将其合并到 develop。(删除 feature)
-
- 下次发布时,所有功能都合并到 develop,并根据项目确定的版本号从 develop 创建 release。
-
- 在 release 中进行除功能开发外的该版本发布所需的准备工作。
-
- 整理 release 后,将其合并到 develop 和 master。(如不需要,则删除 release)
-
- 从 master 进行部署。
- 在 master 上打版本标签。(如有需要,从 master 派生 support)
擅長
-
- 各ブランチの役割が明確
-
- リリース済みリソースと開発中リソースがしっかり分離している
-
- 複数のバージョンの開発や修正を同時並行して進行しやすい
- 将来的にリリースや開発単位での内容の確認がしやすい
弱點
-
- 一見してわかる通り、他のブランチ戦略と比べて明らかに複雑
-
- git 管理に一定の工数がかかる。デプロイ速度を重視しており、毎日デプロイを行いたいようなプロジェクトの場合無視できない。
- 個人開発や小規模プロジェクトなど複数の機能・バージョンの開発が平行しにくい場合、享受できるメリットが減る。
原文中详细介绍了各个分支的说明和操作方法,还使用了更多的图表和文字。这里所列的内容仅仅是一小部分。但是,我认为这已经涵盖了基本的运营所需的信息。
可以参考
一个成功的Git分支模型