ブランチを体験する(Gitチーム開発)

広告

Gitチーム開発シリーズ:なぜGitを使うのか|WinFormsで2人開発を体験する|コンフリクトを体験して解消する|ブランチを体験する(今ここ)|[目次へ]


前回は、コンフリクトを起こして解消する体験をしました。本番ではコンフリクトを避けることが基本ですが、起きたときの対処を体験しておくことは重要です。

今回は ブランチ(分岐) を体験します。main を壊さずに別の「枝」で開発し、完成したら main に統合する流れを学びましょう。


この記事の目的

  • ブランチがなぜ使われるか理解する
  • GitHub Desktop でブランチを作成・切り替え・マージする
  • main を壊さずに新機能を開発する流れを体験する

ブランチとは

ブランチ は、開発の分岐です。

main(メインの枝)
 └ search_feature(検索機能用の枝)

main は本番用のコード、search_feature は開発中のコード、といった使い方です。

メリット

  • main を壊さずに、別の枝で試行錯誤できる
  • 新機能開発とバグ修正を同時に進められる
  • 完成したら main にマージして統合する

前提条件

  • WinFormsで2人開発を体験する を完了している
  • 電話帳アプリが完成し、両者が同じ状態を Pull している
  • Aさん(ロジック担当)・Bさん(画面担当)の役割で、同じリポジトリを共有している

ソリューション名がかぶる場合

別のペアのリポジトリを Clone する場合、同じ名前(例:PhoneBook)のフォルダが複数あると混乱することがあります。

対応:Clone 時に保存先を分ける(例:PhoneBook_Branch)。パスに日本語を入れないことを推奨します。


ブランチで検索機能を追加する

電話帳アプリに「名前の一部で検索する」機能を、ブランチ上で追加します。


① Aさん:ブランチを作成して Push

やること

  1. GitHub Desktop で、現在のブランチが main であることを確認
  2. メニュー「Branch」→「New Branch」(または Ctrl+Shift+N)
  3. ブランチ名を search_feature と入力
  4. Create Branch」をクリック
  5. 何も変更していない状態でも Commit は不要。そのまま Push origin をクリック

※「Publish branch」や「Push origin」で、新しいブランチを GitHub に送信します。


② Bさん:Pull → ブランチに切り替える

やること

  1. GitHub Desktop で Pull を実行
  2. 左上の 「Current Branch」 をクリック
  3. 一覧から search_feature を選択して切り替える
  4. これで Bさんも search_feature ブランチで作業できる状態になる

③ Bさん:検索用のコントロールとイベントを配置

やること

  • Form1 に TextBox(名前:searchBox)を配置
  • Form1 に Button(名前:searchButton、Text:検索)を配置
  • searchButton をダブルクリックして、クリックイベントの空メソッドを作成する
コントロール名前Text
TextBoxsearchBox(空)
ButtonsearchButton検索
private void searchButton_Click(object sender, EventArgs e)
{
    // 中身は Aさんが後で書く
}

Commit:「検索用TextBoxとボタン、クリックイベントを追加」→ Push


④ Aさん:Pull → 検索ロジックを追加

作業前Pull で Bさんの変更を取得

やること

  • Bさんが作成した searchButton_Click の空メソッドに、検索処理を書く
  • 検索処理:searchBox の文字列で名前を絞り込み、nameList を更新する

searchButton_Click の中身

private void searchButton_Click(object sender, EventArgs e)
{
    string keyword = searchBox.Text.Trim();
    nameList.Items.Clear();
    foreach (PhoneData data in phoneBook)
    {
        if (data.Name.Contains(keyword))
        {
            nameList.Items.Add(data.Name);
        }
    }
}

Commit:「検索ロジックを追加」→ Push


⑤ Bさん:Pull → 動作確認

やること

  1. Pull で Aさんの変更を取得
  2. アプリを実行
  3. 検索ボックスに名前の一部(例:「田」)を入力して「検索」ボタンを押す
  4. 名前一覧が絞り込まれれば OK

⑥ Aさん:main にマージする

検索機能が問題なく動いたら、main に統合します。

やること

  1. GitHub Desktop で 「Current Branch」 をクリック
  2. main を選択して切り替える
  3. メニュー「Branch」→「Merge into current branch
  4. search_feature を選択して「Merge search_feature into main」をクリック
  5. Push を実行

⑦ Bさん:Pull して main を確認

やること

  1. 「Current Branch」 で main に切り替える
  2. Pull を実行
  3. main にも検索機能が入っていることを確認

ブランチの流れのまとめ

手順内容
① ブランチ作成main から分岐して、作業用の枝を作る
② ブランチで作業検索機能を追加(Commit → Push)
③ マージ完成したら main に統合する
④ Pushmain をリモートに送信する

ブランチを使うときの注意

作業前にブランチを確認する

GitHub Desktop の左上で 「Current Branch」 を確認しましょう。main と search_feature を間違えると、意図しない場所に Commit してしまいます。

マージ前に動作確認する

main にマージする前に、ブランチ上で動作確認をしておきます。バグがある状態でマージすると、main が壊れてしまいます。

ブランチ名の付け方

機能が分かる名前がおすすめです。

  • 良い例:search_featureadd_buttonfix_bug_001
  • 避けたい例:testbranch1(何のブランチか分からない)

実務でのブランチの使い方

実際の開発では、次のような流れがよく使われます。

  • main:本番用。常に動く状態を保つ
  • feature/〇〇:新機能開発用。完成したら main にマージ
  • fix/〇〇:バグ修正用。修正したら main にマージ

今回体験した「ブランチで開発 → main にマージ」は、実務でも基本となるパターンです。


まとめ

  • ブランチ:main を壊さずに、別の枝で開発する仕組み
  • 流れ:ブランチ作成 → 作業(Commit → Push)→ main にマージ → Push
  • メリット:試行錯誤しやすく、完成したものだけ main に統合できる

コンフリクトの解消と合わせて、ブランチの基本を体験しておくと、チーム開発の実践力がさらに高まります。

訪問数 6 回, 今日の訪問数 6回

広告