💡 この記事でわかること
- ブランチ(branch)とは何か、なぜ使うのか
- ブランチの作成・切り替え・削除の方法
- マージ(merge)とは何か、基本的な使い方
- マージでコンフリクト(衝突)が起きたときの対処法
- GitHubのPull Requestとの関係
1. ブランチ(branch)とは?
ブランチとは、
👉 作業中のコードを本流(main)から分岐させ、影響を与えずに変更を進められる「作業用の枝」です。
👉 Gitの基本的な使い方(add・commit・push)についての記事はこちら
ブランチを使わずに直接mainブランチへ変更を加えていると、次のような問題が起こりがちです。
- 新機能を試している途中のコードが、そのまま公開状態に反映されてしまう
- 複数人で同時に作業すると、お互いの変更が衝突してしまう
- 「動いていた状態」にすぐ戻せなくなる
💡 ブランチを分けておけば、mainブランチをいつでも「安定して動く状態」に保ったまま、新しい機能の開発やバグ修正を並行して進められます。作業が完成してから、後述の「マージ」でmainブランチに取り込みます。
2. ブランチの作成・切り替え
現在のブランチを確認する
今どのブランチにいるかは、次のコマンドで確認できます。
git branchブランチ名の一覧が表示され、現在いるブランチには先頭に「*」が付きます。
新しいブランチを作成する
git branch feature-login「feature-login」という名前のブランチが新しく作られます。ただし、このコマンドだけではブランチが作られるだけで、移動はしません。
ブランチを切り替える
git checkout feature-login作成と切り替えは、次のコマンド1つでまとめて行うこともできます。
git checkout -b feature-login👉 比較的新しいGitでは、git checkoutの代わりにgit switchコマンドも使えます(作成と切り替えはgit switch -c feature-login)。checkoutはブランチ切り替え以外の役割も持つコマンドのため、切り替え専用のswitchの方が用途が分かりやすいという理由で使われ始めています。どちらを使っても結果は同じです。
不要になったブランチを削除する
git branch -d feature-loginマージ済みのブランチであれば-dで削除できます。マージしていない変更が残っている場合は警告が出て削除できないため、誤って未完成の作業を消してしまう心配はありません。
3. マージ(merge)とは?
マージとは、
👉 あるブランチで行った変更を、別のブランチに取り込むことです。
先ほどの例で言えば、「feature-login」ブランチで作った変更を「main」ブランチに取り込む操作がマージにあたります。手順は次の通りです。
- 取り込み先のブランチ(main)に移動する
- マージを実行する
git checkout main
git merge feature-loginこれで、feature-loginブランチで行った変更がmainブランチに反映されます。💡 マージする側(取り込み先)のブランチに移動してから、取り込みたいブランチ名を指定するのがポイントです。順番を間違えやすいので注意しましょう。
4. マージでコンフリクトが起きたときの対処法
マージしようとした2つのブランチで同じファイルの同じ箇所が別々に変更されていると、Gitはどちらを採用すればよいか自動で判断できず、「コンフリクト(競合)」というエラーが発生します。
コンフリクトが起きると、該当のファイルに次のような記号が挿入されます。
<<<<<<< HEAD
console.log("mainブランチの内容");
=======
console.log("feature-loginブランチの内容");
>>>>>>> feature-login👉 この部分を手作業で編集し、どちらの内容を残すか(あるいは両方組み合わせるか)を決めて、記号(<<<<<<<・=======・>>>>>>>)をすべて削除します。編集が終わったら、通常のファイル変更と同じように保存してcommitすれば、コンフリクトは解消されます。
git add .
git commit💡 コンフリクトはGitのエラーではなく「人間の判断が必要な箇所をGitが知らせてくれている」だけの正常な動作です。落ち着いてファイルの中身を確認すれば、初心者でも対処できます。
5. GitHubのPull Requestとの関係
ここまで紹介したマージは、自分のパソコンの中だけで完結する操作です。チーム開発では、いきなりmainブランチにマージするのではなく、GitHub上で変更内容をレビューしてもらってから取り込む「Pull Request」という仕組みがよく使われます。
👉 GitHubの使い方(リポジトリの作り方・Pull Requestなど)についての記事はこちら
👉 「ブランチを作って作業 → GitHubにpush → Pull Requestを作成 → レビュー → マージ」という流れは、チーム開発の基本的な進め方です。ここで紹介したブランチ・マージのコマンドを理解しておくと、GitHub上での操作もスムーズに理解できます。
まとめ
今回はGitのブランチとマージについて解説しました。
- ブランチは、mainに影響を与えずに作業を進めるための「枝」
- 作成・切り替えは
git checkout -b ブランチ名(またはgit switch -c) - マージは
git merge ブランチ名で他のブランチの変更を取り込む操作 - コンフリクトが起きても、記号の箇所を手作業で編集すれば解決できる
最初はブランチを切ることに慣れないかもしれませんが、小さな変更でも「まずブランチを作る」習慣をつけておくと、あとから安心してコードを触れるようになります。ぜひ実際に手を動かして試してみてください。