第7章 5SLAB のチーム開発の型

ページ 2 / 6

01/ 06Git・GitHub

5SLAB のチーム開発の型

永続ブランチは main の 1 本だけ。stg で確かめ、承認して本番へ昇格する

読了目安 約 4実践
読みはじめる
この記事の要約

5SLAB の永続ブランチは main の 1 本だけです。作業は毎回使い捨ての一時ブランチとドラフト PR で進め、main への合流でリハーサル環境(stg)へ自動反映、本番へは人が承認して昇格します。

  • main への合流 = stg 反映。本番はもう一段の承認制
  • いま居るブランチが操作の向き先の環境を決める
  • 並行作業は worktree で場所ごと分ける

永続ブランチはなぜ 1 本だけなのか

ブランチが増えるほど「どれが最新で、どれをどこへ出すのか」の管理が重くなります。5SLAB は幹を main の 1 本に絞り、他の枝はすべて数日で消える使い捨てにしました。小さく頻繁に合流させる、トランクベースと呼ばれる型です。

各ステップをクリックすると、その内容の説明がここに表示されます。

この図をテキストで読む

ステップ図「着手から本番まで、いつも同じ一本道」。5ステップ。 【手順】(順番に) 1. 着手(一時ブランチを切る) 2. こまめに保存(commit・push・Draft PR) 3. レビュー(生成AIと人の点検) 4. 統合(main へ合流 → stg 自動反映) 5. 昇格(承認して本番へ) 補足: どんな作業もこの 5 歩 ── 迷ったら自分がどの歩にいるかを確かめます 【流れ】 - 作業の一本道: 着手 → こまめに保存 → レビュー → 統合 → 昇格

④までは日常の速さで、⑤だけ人がしっかり締める。

ブランチが環境を決める

5SLAB の道具は「いま居るブランチ」から操作先の環境を導きます。main に居る間の操作は本番系へ向かうため、main でやってよいのは読み取りだけ。状態を変える作業は、一時ブランチへ移った瞬間に自分専用の開発環境へ向き先が切り替わります。

main
唯一の幹
常に公開できる正式な状態
stg(合流で自動反映)
読み取りと、枝の合流だけ
一時ブランチ
使い捨ての作業場
1 作業ごとの下書きの枝
開発者ごとの dev 環境
編集・実験、なんでも
release タグ
本番の印
「いま本番に出ている内容」を指す
prod(本番)
昇格のたびに新しく付く

各セルをクリックすると、その意味や詳しい説明がここに表示されます。

この図をテキストで読む

比較表「ブランチと環境の対応」。3列 × 3行。 【列】 1. 役割 2. 対応する環境 3. やってよいこと 【比較】(観点ごとに) ■ main - 役割: 常に公開できる正式な状態 - 対応する環境: stg(合流で自動反映) - やってよいこと: 読み取りと、枝の合流だけ ■ 一時ブランチ - 役割: 1 作業ごとの下書きの枝 - 対応する環境: 開発者ごとの dev 環境 - やってよいこと: 編集・実験、なんでも ■ release タグ - 役割: 「いま本番に出ている内容」を指す - 対応する環境: prod(本番) - やってよいこと: 昇格のたびに新しく付く 【観点】 - 環境で見る: 対応する環境 - 作法で見る: やってよいこと

「どこに居るか」は「どこへ向かうか」の宣言です。

並行作業は worktree で分ける

作業の途中で別の依頼が来たら、同じフォルダの中でブランチを切り替えるのではなく、リポジトリの作業場所(worktree)をもう 1 つ増やします。書きかけの机はそのままに、隣の机で別件を進めるイメージです。

割り込み対応の 2 つのやり方

書きかけの作業手が止められない
いったん退避変更を仮置きする
ブランチを切替中身が入れ替わる
別件に対応終わったら逆再生

各ブロックや矢印をクリックすると、その仕組みの説明がここに表示されます。

切り替えのたびに書きかけの退避が要る — 混ざり事故のもと

この図をテキストで読む

構成図。ブロック4個、つながり3本。 【ブロック】 - 書きかけの作業: 手が止められない - いったん退避: 変更を仮置きする - ブランチを切替: 中身が入れ替わる - 別件に対応: 終わったら逆再生 【流れ】 - 切替のたびに退避: 書きかけの作業 → いったん退避 → ブランチを切替 → 別件に対応

机を増やす方が、退避も復元も要らない。

本番を守る多重の仕掛け

レビューの関所、自動テスト、昇格の都度承認、過去への巻き戻しを拒む前進ガード ── 本番の手前には仕掛けが何重にもあります。誰かのうっかり 1 回では本番が壊れない構えを、人の注意力ではなく道具の側に作り込んでいます。

押さえておきたい用語

トランクベース開発
幹(trunk)= main の 1 本に、小さく頻繁に合流させる開発の型。長生きする枝を作りません。
一時ブランチ
作業のたびに作り、合流したら捨てる枝。名前に Issue 番号を含めて由来を残します。
stg(ステージング環境)
本番そっくりのリハーサル環境。main への合流で自動的に最新へ更新されます。
この用語の解説を読む
昇格(プロモート)
stg で検証したものを、作り直さずそのまま本番へ進めること。人の承認が必須です。
release タグ
昇格のたびに付ける印。「いま本番に出ているのはどれか」を履歴上で指し続けます。
worktree
1 つのリポジトリに作業場所を複数開く Git の機能。並行作業を机ごと分けられます。
ページ 2 / 6