ブランチを体験する(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
やること
- GitHub Desktop で、現在のブランチが main であることを確認
- メニュー「Branch」→「New Branch」(または Ctrl+Shift+N)
- ブランチ名を
search_featureと入力 - 「Create Branch」をクリック
- 何も変更していない状態でも Commit は不要。そのまま Push origin をクリック
※「Publish branch」や「Push origin」で、新しいブランチを GitHub に送信します。
② Bさん:Pull → ブランチに切り替える
やること
- GitHub Desktop で Pull を実行
- 左上の 「Current Branch」 をクリック
- 一覧から
search_featureを選択して切り替える - これで Bさんも
search_featureブランチで作業できる状態になる
③ Bさん:検索用のコントロールとイベントを配置
やること
- Form1 に TextBox(名前:
searchBox)を配置 - Form1 に Button(名前:
searchButton、Text:検索)を配置 searchButtonをダブルクリックして、クリックイベントの空メソッドを作成する
| コントロール | 名前 | Text |
|---|---|---|
| TextBox | searchBox | (空) |
| Button | searchButton | 検索 |
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 → 動作確認
やること
- Pull で Aさんの変更を取得
- アプリを実行
- 検索ボックスに名前の一部(例:「田」)を入力して「検索」ボタンを押す
- 名前一覧が絞り込まれれば OK
⑥ Aさん:main にマージする
検索機能が問題なく動いたら、main に統合します。
やること
- GitHub Desktop で 「Current Branch」 をクリック
- main を選択して切り替える
- メニュー「Branch」→「Merge into current branch」
- search_feature を選択して「Merge search_feature into main」をクリック
- Push を実行
⑦ Bさん:Pull して main を確認
やること
- 「Current Branch」 で main に切り替える
- Pull を実行
- main にも検索機能が入っていることを確認
ブランチの流れのまとめ
| 手順 | 内容 |
|---|---|
| ① ブランチ作成 | main から分岐して、作業用の枝を作る |
| ② ブランチで作業 | 検索機能を追加(Commit → Push) |
| ③ マージ | 完成したら main に統合する |
| ④ Push | main をリモートに送信する |
ブランチを使うときの注意
作業前にブランチを確認する
GitHub Desktop の左上で 「Current Branch」 を確認しましょう。main と search_feature を間違えると、意図しない場所に Commit してしまいます。
マージ前に動作確認する
main にマージする前に、ブランチ上で動作確認をしておきます。バグがある状態でマージすると、main が壊れてしまいます。
ブランチ名の付け方
機能が分かる名前がおすすめです。
- 良い例:
search_feature、add_button、fix_bug_001 - 避けたい例:
test、branch1(何のブランチか分からない)
実務でのブランチの使い方
実際の開発では、次のような流れがよく使われます。
- main:本番用。常に動く状態を保つ
- feature/〇〇:新機能開発用。完成したら main にマージ
- fix/〇〇:バグ修正用。修正したら main にマージ
今回体験した「ブランチで開発 → main にマージ」は、実務でも基本となるパターンです。
まとめ
- ブランチ:main を壊さずに、別の枝で開発する仕組み
- 流れ:ブランチ作成 → 作業(Commit → Push)→ main にマージ → Push
- メリット:試行錯誤しやすく、完成したものだけ main に統合できる
コンフリクトの解消と合わせて、ブランチの基本を体験しておくと、チーム開発の実践力がさらに高まります。




ディスカッション
コメント一覧
まだ、コメントがありません