【Git】ブランチ切り替え方法を初心者向けにわかりやすく解説
はじめに
Gitを使った開発では、ブランチという仕組みを利用して作業を効率的に進めることがよくあります。
特に複数の開発者が同時に作業を行う場合や、新機能の実装とバグ修正を並行して行う場合には、ブランチを使い分けることで安全かつ整理された状態を維持できます。
しかし、いざ実務でブランチを切り替えようとすると「そもそもどうやってブランチを切り替えるのか」「実際にどんなコマンドを使うのか」という疑問が出てくるかもしれません。
そこで本記事では、git ブランチ 切り替えの手順や活用シーンを、初心者の方にも理解しやすいように解説します。
コード例を交えながら、どういうときにどのコマンドを使うべきかを具体的に説明していきますので、ぜひ参考にしてみてください。
この記事を読むとわかること
- Gitにおけるブランチの基本的な仕組み
- ブランチ切り替えに役立つコマンド(git switch、git checkout)の使い方
- 実際の開発現場で考えられるブランチ切り替えの活用シーン
- ブランチ切り替え時に気をつけるポイント
Gitのブランチとは何か
Gitのブランチは、作業中のファイルや履歴を独立させて管理できる仕組みです。
新機能の開発やバグ修正など、目的別に分岐させて作業できるため、作業内容を混乱なく進めることができます。
例えば、mainというメインのブランチがあり、そこに新しい機能を追加したいとします。このとき新しいブランチを作成し、そのブランチで作業を行うことで、メインのブランチに余計な影響を与えないで済みます。
開発が完了したらブランチを統合(マージ)することで、完成した成果物をメインブランチに反映させるという流れです。
実務での具体的な例
- 新機能開発:ユーザー認証機能を追加するブランチを切り替えて作業する
- バグ修正:障害が見つかった際に、急ぎで修正ブランチを立てて切り替える
- テスト用:安定しているブランチを元に、テストや検証用のブランチを作る
このように、同じソースコードの基盤を持ちながらも独立した領域を複数作れるのがブランチのメリットです。
ブランチを切り替える方法の全体像
ブランチを切り替えるには、Gitが用意しているコマンドを利用します。
古くから利用されてきた git checkout と、比較的新しく追加された git switch の2つが代表的です。
- git switch:ブランチの切り替えや作成に特化したコマンド
- git checkout:ブランチの切り替えやファイルのチェックアウトなど複数の機能を持つコマンド
どちらのコマンドを使うかはプロジェクトやチームの方針に左右されますが、機能的にはほぼ同じように使えます。
初心者の方であれば、ブランチ切り替えを分かりやすく行いたいときは git switch を使うのもよいでしょう。
git switch でブランチを切り替える方法
git switch は、その名のとおり「スイッチ(切り替え)」に特化したコマンドです。
ブランチを作成すると同時に移動したり、既存のブランチへ移動したりできます。
既存のブランチへ切り替える
例えば feature/login というブランチが既に存在している場合、以下のコマンドで切り替えができます。
git switch feature/login
これで、カレントブランチが feature/login
に移ります。
もし作業中のファイルに変更が残っている場合は、競合が発生することがあります。その場合は一度変更をコミットしてから切り替えるか、もし一時的に退避したいなら git stash を利用すると便利です。
新しいブランチを作成して切り替える
まだ存在しないブランチを新規作成して、すぐにそこへ移動したい場合は、以下のように -c
オプションを使います。
git switch -c feature/new-design
これにより、feature/new-design
という新しいブランチを作成し、同時にそのブランチに移動した状態になります。
「すぐに新機能の開発を開始したい」というときに便利です。
git checkout でブランチを切り替える方法
git checkout は、ブランチの切り替えだけでなく、特定のファイルの変更を元に戻すためにも利用できます。
その多機能さゆえに少し操作が複雑に感じるかもしれませんが、ブランチ切り替えでもよく使用されてきたコマンドです。
既存のブランチへ移動する
既に存在するブランチに切り替えたい場合は、以下のようにします。
git checkout feature/login
これで、ブランチが feature/login
に切り替わります。
git switch と同じく、作業途中の変更がある場合はコミットやstashを利用して、変更の衝突を防いでおくことが大切です。
新しいブランチを作成して切り替える
新しいブランチを作成すると同時に切り替える場合は、-b
オプションを使います。
git checkout -b feature/new-design
このコマンドによって、feature/new-design
というブランチが新規作成され、カレントブランチが切り替わります。
実務でのブランチ切り替え活用シーン
ブランチ切り替えが活躍するのは、新機能開発やバグ修正だけではありません。
例えば、以下のような場面でもブランチ切り替えが役立ちます。
リリース前の最終チェック
開発が完了したブランチを一時的に別ブランチへコピーし、そこで動作確認を行うことがあります。
万が一問題が発見されても、本番に反映されるブランチには影響を与えずに済むためです。
こうしたときに、git switch や git checkout を用いて素早くブランチを切り替え、テストのために作成したブランチへ移動するのは効果的です。
複数のタスクを並行作業する
機能Aの開発を進めている最中に、突発的なバグ修正が必要になる場合があります。
そんなときは、開発中のブランチからバグ修正用のブランチに切り替えて対処し、修正が完了次第、元のブランチに戻って再び開発を継続するという流れが考えられます。
このように作業を並行して進めるとき、ブランチ切り替えは必須のテクニックです。
運用保守時のトラブルシューティング
リリース後に障害が発生した場合、過去のリリースブランチへ切り替えたり、問題箇所を素早く特定するために特定のブランチを切り替えたりすることがあります。
運用中のコードと最新開発中のコードが異なる場合でも、ブランチ管理をしっかりしていれば、必要なタイミングで必要なブランチに戻れるので安心です。
ブランチ切り替え前に押さえておきたいポイント
未コミットの変更をどうするか
ブランチを切り替える前に、作業中のコードがコミットされていないと衝突の原因になることがあります。
基本的には、変更内容をコミットしてから切り替えることが推奨されます。
コミットできない中途半端な状態の場合は、git stash で一時的に作業を退避させておくのも手です。
リモートリポジトリとの兼ね合い
ローカルブランチの作成と切り替えを行った後、作業をリモートリポジトリに反映させる場合は、リモートブランチを新規に作成することがあります。
git push -u origin feature/xxx
のようなコマンドでブランチをリモートにも登録しておけば、チームメンバーと共同作業しやすくなるでしょう。
ブランチ名はプロジェクトの命名規則に従う必要がある場合があります。チーム全体でブランチ名の付け方を統一すると、コミュニケーションがスムーズになるでしょう。
ブランチの不要な増殖に注意
タスクが完了してマージされたブランチをそのまま放置してしまうと、リポジトリ内に使われなくなったブランチが大量に残ることがあります。
定期的に不要ブランチを削除することで、リポジトリを整理しやすくなります。
ローカルでもリモートでも、不要なブランチは積極的に削除しておくのが無難です。
ブランチ切り替え時に生じるトラブルの対処法
競合が起きて切り替えができない
作業中のファイルにコミットしていない変更点があると、ブランチ切り替え時にエラーが発生して切り替えを拒否されることがあります。
この場合、以下のいずれかで対処可能です。
- 変更をコミットしてから切り替える
- 変更を取り消す
- git stash を使用して一時的に変更を退避
エラー文に “Please commit your changes or stash them before you switch branches.” と表示されることがあるので、指示に従ってコミットや stash を行いましょう。
どのブランチに切り替えればいいかわからなくなる
ブランチが増えすぎてわからなくなることもあります。
そんなときは、以下のコマンドでブランチの一覧を確認するのが便利です。
git branch
ローカルに存在するブランチと、カレントブランチが表示されます。
リモートのブランチを含めて確認したい場合は、git branch -a
を使う方法もあります。
どのブランチから派生したかを明確にしておくために、ブランチの命名規則やGitフローなどを取り入れるのも有力な方法です。
ブランチを切り替える際の実務的な流れ
ここでは、実際の現場を想定したブランチ切り替えの流れをまとめます。
参考例として、機能追加のブランチを作業している途中でバグ修正が入ったケースを考えましょう。
- まずは開発中のブランチで作業内容をコミットする
- 追加タスクとしてバグ修正用のブランチを作成し、切り替え (
git switch -c bugfix/urgent-issue
) - バグ修正が完了したら、コミットしてプッシュ
- バグ修正ブランチをメインブランチへマージ
- 再度、開発中のブランチへ戻る (
git switch feature/xxxx
)
この一連の流れをスムーズに行うために、切り替え前後でコミットを忘れないことが重要です。
また、バグ修正ブランチをメインブランチにマージした後、開発中のブランチにも修正内容を反映するのを忘れずに行いましょう。
まとめ
ブランチ切り替えは、Gitの機能のなかでも頻繁に使う操作です。
複数の作業を並行して進めたり、安全に機能開発やバグ修正を行ったりするために、git switch や git checkout を使いこなしてみてください。
ブランチの切り替え自体は非常にシンプルなコマンドですが、実際の現場では衝突の対処や命名規則、不要なブランチの整理など、周辺の運用ルールも大切になってきます。
実務の流れを意識しながら、適切にブランチを切り替えてプロジェクトを円滑に進めましょう。
以上で、git ブランチ 切り替えの基本と実務での活用方法の解説を終わります。
ぜひ次の開発や学習に活かしていただければ幸いです。