Gitマスター育成プログラム(第2ヶ月目:ブランチを活用した開発フロー)

目的: Gitのブランチ機能を理解し、ローカルリポジトリ内でブランチを活用した開発を習得する。

第2ヶ月目:ブランチを活用した開発フロー

5. ブランチの基礎

5.1 ブランチとは?

ブランチ(branch)は、現在の作業状態を保存したまま、新しい開発を進めるための仕組みです。
主な利点:

  • 独立した作業環境 を確保できる
  • チーム開発で並行作業 が可能
  • 機能単位で管理 できる

5.2 ブランチの作成と切り替え

現在のブランチを確認

git branch

新しいブランチを作成

git branch feature-branch

ブランチを切り替え(2通りの方法)

git checkout feature-branch  # 古い方法
git switch feature-branch    # 新しい方法(推奨)

5.3 ブランチの削除

不要なブランチを削除

git branch -d feature-branch

強制削除(未マージのブランチを削除する場合)

git branch -D feature-branch

6. ブランチを使った開発

6.1 ブランチで作業を進める

develop ブランチを作成し、切り替え

git branch develop
git switch develop

ファイルを変更し、コミット

echo "新しい機能" > feature.txt
git add feature.txt
git commit -m "新しい機能を追加"

6.2 別のブランチへ移動

main に戻る

git switch main

ブランチの履歴を確認

git log --oneline --graph 

7. ブランチの統合(マージ)

7.1 ブランチのマージ

develop で作業を終えたら main に戻る

git switch main

develop の変更を main に統合

git merge develop

7.2 マージ時のコンフリクトと解決方法

競合が発生すると、以下のようなメッセージが表示される

CONFLICT (content): Merge conflict in conflict.txt
Automatic merge failed; fix conflicts and then commit the result.

コンフリクトの発生したファイルを確認し、手動で修正

修正後、変更をステージングしてコミット

git add conflict.txt
git commit -m "コンフリクトを解決"


8. 練習問題

問題1: ブランチを使った開発の流れ

  1. git init で新しいリポジトリを作成
  2. main から feature-A というブランチを作成
  3. feature-A にファイルを追加してコミット
  4. main に戻り、feature-A の変更をマージ
  5. git log --oneline --graph で履歴を確認

問題2: マージ時のコンフリクトを解決

  1. main ブランチに conflict.txt を作成し、適当な内容をコミット
  2. feature-B ブランチを作成し、同じ conflict.txt を異なる内容で変更してコミット
  3. feature-Bmain にマージし、コンフリクトを解決
  4. git log --oneline --graph で結果を確認

問題3: git rebase を試す

  1. develop ブランチを作成し、適当な変更をコミット
  2. main で別の変更を加えてコミット
  3. developmain にリベースして、履歴を整理 git switch develop git rebase main
  4. git log --oneline --graph で履歴を確認

問題4: 複数のブランチを使った開発フロー

  1. git init で新しいリポジトリを作成
  2. main から feature-loginfeature-signup の2つのブランチを作成
  3. feature-loginlogin.txt を作成し、「ログイン機能の実装」と記述してコミット
  4. feature-signupsignup.txt を作成し、「サインアップ機能の実装」と記述してコミット
  5. main に戻り、feature-loginfeature-signup の順にマージ
  6. git log --oneline --graph で履歴を確認

問題5: git stash を活用する

  1. git init でリポジトリを作成し、適当なファイルを追加・コミット
  2. 新しいブランチ feature-test を作成し、ファイルを変更(ただし、コミットはしない)
  3. git stash を使って作業途中の変更を一時的に退避
  4. main に切り替えて、新しいファイルを作成してコミット
  5. feature-test に戻り、git stash pop で変更を復元
  6. git diff で変更が戻ったことを確認

ヒント:

  • git stash で変更を退避
  • git stash list で保存した変更を確認
  • git stash pop で変更を適用

問題6: git cherry-pick を使って特定のコミットを適用

  1. git init でリポジトリを作成し、main で3回コミットを行う
  2. feature-select というブランチを作成し、main の過去の2つ目のコミットだけを適用
  3. git log --oneline --graph で履歴を確認し、特定のコミットのみが適用されていることを確認

ヒント:

  • git log --oneline でコミットIDを確認
  • git cherry-pick <コミットID> で特定のコミットを別のブランチに適用

この流れでブランチを活用し、ローカル環境での開発フローに慣れていきましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。