Skip to content

Commit 8715805

Browse files
authored
internal review feedback (#157)
1 parent 5f09127 commit 8715805

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

documents/forGitBranch/Gitブランチフロー規約.md

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,20 @@ meta:
2525

2626
導入に際して行う、GitやGitHub/GitLabの環境設定は、[推奨設定](recommended_settings.md)ページに記載している。
2727

28-
# ブランチ運用パターン
28+
# ブランチ戦略の選定
2929

3030
本ドキュメントで想定する各ブランチ役割については[ブランチの整理](each_branch.md)に記載する。
3131

32+
ブランチ戦略は以下の方針で選定する。
33+
34+
- できるかぎりシンプルなモデルを選択し、運用コストを下げる
35+
- プロジェクトのフェーズや体制に応じて、変更を許容する
36+
3237
現実的に利用する可能性が高いブランチの運用パターン3つ示す。
3338

34-
基本的には運用コストが最小になるパターンを選択し、プロジェクトの体制に応じて運用を変更する
39+
選定を記載順で導入を検討する
3540

36-
(例) GitHub Flow → Lite GitLab Flow → GitLab Flow
41+
- GitHub Flow → Lite GitLab Flow → GitLab Flow
3742

3843
| 名称 | 利用ブランチ | 概要 | 運用コスト | 使い所 |
3944
| ---------------- | ------------------------------------------| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------- |
@@ -55,18 +60,18 @@ meta:
5560
当然、`develop2`はこれらの変更を加味して大型リリース向け開発を進める必要があるので、`develop`のmainブランチ反映されるたびに`develop`から`develop2`への同期を行う必要がある。
5661
`develop`から`develop2`への同期は以下の様に行う。
5762

58-
- rebaseとしてしまうと`develop2`を元にfeatureブランチを作成して開発している開発者が混乱することになるため、マージコミットにて同期を行う。
63+
- リベースとしてしまうと`develop2`を元にfeatureブランチを作成して開発している開発者が混乱することになるため、マージコミットにて同期を行う。
5964
- 誤操作を避ける目的でcherry-pickは行わない。
6065

6166
![release multi develop branch](img/branch_strategy_release_multi_develop.drawio.png)
6267

6368
develop2のリリースは以下の手順で行う。
6469

6570
1. `develop`から`develop2`へマージコミットによって同期を行う。(2でコンフリクトが起こらないよう、前準備の意味合いで実施する。)
66-
2. `develop2`から`develop`にmergeを行い、その後は通常のリリースフローに従う
71+
2. `develop2`から`develop`にマージを行い、その後は通常のリリースフローに従う
6772
3. 問題なくリリースが完了し次第、`develop2`を削除する
6873

69-
`develop`から`develop2`へmerge後`develop2``main`ブランチに反映させる手順も考えられるが、`develop2`から`develop`へのマージとすると以下のメリットがある。
74+
`develop`から`develop2`へマージ後`develop2``main`ブランチに反映させる手順も考えられるが、`develop2`から`develop`へのマージとすると以下のメリットがある。
7075

7176
- 本番環境(=`develop`)との差分を把握することができる
7277
- より一般的な名称である `develop` ブランチのみ残るため、新規参画者フレンドリーである
@@ -82,9 +87,9 @@ develop2のリリースは以下の手順で行う。
8287
featureブランチのマージ後、マイナーバージョン(あるいはパッチバージョン)を上げたタグをコミットし、本番環境へリリースする。
8388
※この例ではversion1とversion2が別リソースとして動いていることを前提としている。同一リソースで複数バージョンが稼働する場合はversion2のブランチで対応を行う必要がある。
8489

85-
# マージ戦略
90+
# マージ戦略の選定
8691

87-
マージ戦略とは、複数のブランチ間でコードの変更を統合する際に使用される方法やポリシーを指し、以下の事項に影響を与えます
92+
マージ戦略とは、複数のブランチ間でコードの変更を統合する際に使用される方法やポリシーを指し、以下の事項に影響を与える
8893

8994
- プロジェクトのコミット履歴の管理
9095
- コンフリクトの解決
@@ -100,7 +105,7 @@ featureブランチのマージ後、マイナーバージョン(あるいは
100105
1. 開発中の機能ブランチに対してメインの開発ブランチの変更をどう取り込むか
101106
2. メインの開発ブランチに開発およびレビューが完了した機能ブランチをどう取り込むか
102107

103-
## 1. 機能ブランチにメインの開発ブランチの変更を取り込む
108+
## 1. 機能ブランチに開発ブランチの変更を取り込む
104109

105110
複数人により同時並行的に開発が進む場合、特定の機能ブランチで開発を進めている最中に、メインの開発ブランチがアップデートされることはよく起こる。
106111

@@ -148,7 +153,7 @@ featureブランチのマージ後、マイナーバージョン(あるいは
148153
| AWS CodeCommit | 残る | 消える | 消える | 強制プッシュ関係なく、最新のコミットに対してのみレビューコメントが紐づく。そのため、新しいコミットをPushすると、過去につけたレビューコメントがファイル詳細から消えたように見える |
149154
:::
150155

151-
## 2. メインの開発ブランチに機能ブランチの変更を取り込む
156+
## 2. 開発ブランチに機能ブランチの変更を取り込む
152157

153158
プルリクエストを経由して、開発が完了した機能ブランチをメインの開発ブランチに取り込むためには、GitHub(GitLab)上でプルリクエスト(マージリクエスト)を経由する運用を前提とする。
154159

@@ -190,7 +195,7 @@ https://zenn.dev/daku10/articles/github-merge-guardian
190195

191196
## 追い抜きリリース
192197

193-
以下のような状況とします
198+
以下のような状況とする
194199

195200
- 2つのチケット(issue-312、issue-394とする)があり、どちらも同じファイルの修正を含む
196201
- 先にissue-312がdevelopにマージされ、その後に着手されたissue-394がマージされた
@@ -220,7 +225,7 @@ https://zenn.dev/daku10/articles/github-merge-guardian
220225

221226
![hotfixで追い抜き](img/release_overtaking_hotfix.drawio.png)
222227

223-
# コミットメッセージ
228+
# コミットメッセージ規則
224229

225230
Gitのコミットメッセージは原則自由とする。理由は以下である。
226231

@@ -232,24 +237,24 @@ Gitのコミットメッセージは原則自由とする。理由は以下で
232237

233238
- [コミットメッセージ規約](commit_message_rule.md)
234239

235-
# ブランチ名
240+
# ブランチ命名規則
236241

237242
ブランチ名の命名規則は、[ブランチの整理](each_branch.md)の記載内容に従うこと。
238243

239-
# ラベル
240-
241-
TODO ラベルについて方針を追加する。(ラベルを利用することで、issue, プルリクエストを分類することができる。適切に設定することでリリースノート作成時に有用である。)
242-
243-
https://docs.github.com/ja/issues/using-labels-and-milestones-to-track-work/managing-labels
244-
245-
# タグ
244+
# タグ規則
246245

247246
Gitにはタグ機能があり、リリースポイントとしてタグを作成する運用とする。
248247

249248
これにより、リリースしたアプリケーションやライブラリに何か不具合があれば、切り戻しや原因追求が容易になる利点がある。
250249

251250
タグを利用するうえでの運用ルール・命名規則などは[タグ規則](git_tag.md)を参考にする。
252251

252+
# ラベル規則
253+
254+
TODO ラベルについて方針を追加する。(ラベルを利用することで、issue, プルリクエストを分類することができる。適切に設定することでリリースノート作成時に有用である。)
255+
256+
https://docs.github.com/ja/issues/using-labels-and-milestones-to-track-work/managing-labels
257+
253258
# 参考1:ローカルでの作業例
254259

255260
gitコマンドでの作業例を記載する。リモートブランチへのプッシュは、`--force-with-lease --force-if-includes` オプションを付けることを必須とする。

0 commit comments

Comments
 (0)