ブランチ運用
要点
- ブランチとは、本流(main)から枝分かれさせて、他の作業に影響を与えずに変更を進められる仕組みです。
- 作業が終わったら「マージ」で本流に合流させます。両者で同じ箇所を変更していると「コンフリクト(衝突)」が起きることがあります。
- ブランチを使いこなすと、複数の機能開発や修正を安全に並行して進められるようになります。
ブランチ
(統合後)
ブランチがないとどうなるか
もし全員が1本の履歴(main)に直接コミットしていくとしたらどうなるでしょうか。ある人が新機能を試している途中の、まだ動作が不安定なコードが、そのままチーム全体の履歴に混ざってしまいます。
誰かが「今日リリースしたい」と思っても、他の人の未完成の変更が混じっていて安心してリリースできない、という状況が起きやすくなります。
🔑 身近な例1つの原稿を複数人が同時に書き足していくのに似ています。誰かが下書き段階の文章を書いている途中で、他の人がそのまま印刷に回してしまったら困りますよね。
ブランチとは
ブランチは、履歴の流れを枝分かれさせる仕組みです。本流となる「main」ブランチとは別に、機能追加や修正のための作業用ブランチを作ることで、本流に影響を与えずに自由に試行錯誤できます。
ブランチ作成
開発を開始
🔑 身近な例物語の「もしこの選択肢を選んだら」という分岐ルートに似ています。本編(main)はそのままに、別の展開(ブランチ)を試すことができ、うまくいけば後から本編に取り込めます。
作業ブランチで開発を進める
実際の現場では、機能や修正内容ごとにブランチを作るのが一般的です。例えば「ログイン機能追加」用のブランチ、「表示崩れの修正」用のブランチ、というように分けます。
作業ブランチの中で何度コミットしても、mainには影響しません。安心して細かく作業を記録しながら進められます。
マージ: 本流に合流させる
作業ブランチでの変更が完成したら「マージ」を行い、その内容を本流(main)に取り込みます。マージが完了すると、ブランチでの変更履歴もmainの一部として統合されます。
(完成)
(両方の変更を含む)
物語の分岐ルートと同じように、複数のルート(ブランチ)を試して、良かったものを本編(main)に合流させていくイメージです。
コンフリクト(衝突)とは
マージのときに、mainと作業ブランチの両方で「同じファイルの同じ箇所」が変更されていると、Gitはどちらを採用すべきか自動で判断できず「コンフリクト(衝突)」として知らせてきます。
🔑 身近な例2人が同じ会議室を同じ時間で予約しようとした状態に似ています。システムが自動で決められないので、人間が「どちらを優先するか」を確認して調整する必要があります。
まとめ
ブランチは、本流に影響を与えずに作業を進めるための「分岐」の仕組みで、完成した内容はマージによって本流に合流します。同じ箇所の変更が重なるとコンフリクトが起きるため、こまめにマージ・共有することが安全な運用のコツです。
関連トピック: