01/ 06Git・GitHub
5SLAB のチーム開発の型
永続ブランチは main の 1 本だけ。stg で確かめ、承認して本番へ昇格する
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 でやってよいのは読み取りだけ。状態を変える作業は、一時ブランチへ移った瞬間に自分専用の開発環境へ向き先が切り替わります。
各セルをクリックすると、その意味や詳しい説明がここに表示されます。
この図をテキストで読む
比較表「ブランチと環境の対応」。3列 × 3行。 【列】 1. 役割 2. 対応する環境 3. やってよいこと 【比較】(観点ごとに) ■ main - 役割: 常に公開できる正式な状態 - 対応する環境: stg(合流で自動反映) - やってよいこと: 読み取りと、枝の合流だけ ■ 一時ブランチ - 役割: 1 作業ごとの下書きの枝 - 対応する環境: 開発者ごとの dev 環境 - やってよいこと: 編集・実験、なんでも ■ release タグ - 役割: 「いま本番に出ている内容」を指す - 対応する環境: prod(本番) - やってよいこと: 昇格のたびに新しく付く 【観点】 - 環境で見る: 対応する環境 - 作法で見る: やってよいこと
並行作業は worktree で分ける
作業の途中で別の依頼が来たら、同じフォルダの中でブランチを切り替えるのではなく、リポジトリの作業場所(worktree)をもう 1 つ増やします。書きかけの机はそのままに、隣の机で別件を進めるイメージです。
割り込み対応の 2 つのやり方
各ブロックや矢印をクリックすると、その仕組みの説明がここに表示されます。
切り替えのたびに書きかけの退避が要る — 混ざり事故のもと
この図をテキストで読む
構成図。ブロック4個、つながり3本。 【ブロック】 - 書きかけの作業: 手が止められない - いったん退避: 変更を仮置きする - ブランチを切替: 中身が入れ替わる - 別件に対応: 終わったら逆再生 【流れ】 - 切替のたびに退避: 書きかけの作業 → いったん退避 → ブランチを切替 → 別件に対応
本番を守る多重の仕掛け
レビューの関所、自動テスト、昇格の都度承認、過去への巻き戻しを拒む前進ガード ── 本番の手前には仕掛けが何重にもあります。誰かのうっかり 1 回では本番が壊れない構えを、人の注意力ではなく道具の側に作り込んでいます。
押さえておきたい用語
- トランクベース開発
- 一時ブランチ
- stg(ステージング環境) この用語の解説を読む
- 昇格(プロモート)
- release タグ
- worktree