【Git】git checkoutとは?ブランチの切り替えやファイルの復元方法を初心者向けに解説
はじめに
皆さんはgit checkoutというコマンドをどのように活用しているでしょうか。 Gitで作業をしていると、途中で別のブランチに移動したくなったり、変更した内容を元に戻したくなることがあります。 そんなときに便利なのがgit checkoutです。 ブランチの切り替えだけでなく、ファイルの復元にも応用できるので、バージョン管理をスムーズに進めるうえで知っておきたいポイントが多いコマンドといえます。
このコマンドは一見シンプルですが、実際の使い方にはいくつか注意点があります。 この記事では、初心者の方でも理解しやすいよう、基本構文から実務での活用シーンまで幅広く紹介していきます。
この記事を読むとわかること
- git checkoutの概要
- ブランチを切り替える具体的な方法
- ファイルを復元する手順
- 実務でどのように使うかイメージする方法
git checkoutの概要
初心者の方は、まずgit checkoutがどんな役割を持つコマンドなのかを整理しておくと理解しやすいでしょう。 一般的には「今の作業フォルダの状態を、特定のブランチやコミット、あるいはファイルの状態に切り替える」コマンドとして使われます。
例えば、開発を進めるうちに新しいブランチを作って変更を加えたものの、「やっぱり前の状態に戻したい」と思うことがあるかもしれません。 また、「他のブランチに移動して動作を確認し、そのブランチのファイル状態に切り替えたい」と考えることもあります。 こういった状況でgit checkoutを使うと、指定したブランチやコミットの状態へすぐに移動できます。
git checkoutが必要となる背景
Gitは複数人での共同作業や、個人での開発でも履歴を細かく管理できる便利なツールです。 ただし、履歴が増えるほど「今、どのブランチでどんな変更を行っているか」を正確に把握する必要が出てきます。 もし「間違ったブランチを編集してしまう」といった状況になると、後から修正するのに手間がかかるかもしれません。 そこで、目的のブランチを明示的に切り替えたいときに使われるのがgit checkoutです。
さらに、個別のファイルを特定のコミットの状態に戻したいときにも同じコマンドを使う場面があります。
「誤ってファイルを編集してしまった」「どの段階からおかしくなったのか調べたい」というときに、git checkout <コミットハッシュ> <ファイル名>
の形を使うと便利です。
実務で意識しておきたいポイント
実務では、チームメンバーが同時に複数のブランチを扱い、各ブランチで機能開発を進めるケースが多いです。 このとき、誤って他の人が作業しているブランチをチェックアウトしてしまったり、コミット内容をうっかり上書きしてしまうと、開発全体に影響が及ぶ可能性があります。 安全にブランチを切り替えるために、git checkoutの基本的な使い方をしっかりマスターしておきましょう。
git checkoutでブランチを切り替える
ここでは、ブランチ切り替えに関する具体的なコマンドや手順を紹介します。
既存ブランチへの切り替え
最も基本的な使い方は、すでに存在するブランチへの移動です。 コマンドはシンプルで、以下のように書きます。
git checkout ブランチ名
ここで指定したブランチ名が現在の作業ディレクトリに反映されるため、そのブランチに属する最新のコミット内容が手元に展開されます。 ブランチ名が間違っているとエラーが出ますが、その場合は正確な名前を指定し直してみてください。
多くのチーム開発では、main
や develop
ブランチに移動して一通りのテストを行ったうえで、新しいブランチに作業を切り替えるといった流れが一般的です。
このようにこまめにブランチを切り替えることで、作業を安全に進められるようになります。
新しいブランチを作りながら切り替える
作業の途中で新しい機能を開発したいときなどは、新規ブランチを生やしたほうが管理しやすいです。 その際は、-bオプションを付けてブランチを作成しながら切り替えます。
git checkout -b 新しいブランチ名
このコマンドを実行すると、新しいブランチが生成されて、そのままそのブランチへ移動します。 実務では「feature/〇〇」「hotfix/〇〇」といった規則的なブランチ名を付けるケースが多いです。 ブランチを切り替えるだけでなく作成まで行うので、効率的に開発を進められます。
注意したいポイント
複数のブランチを行き来して作業する場合、作り途中のソースコードが中途半端に残ると、あとで混乱が生じるかもしれません。 移動前には変更をコミットするか、あるいはまだコミットしたくない場合には変更を一時退避させる機能(git stashなど)を活用すると安心です。 こうした下準備をしておけば、意図せずファイルが混ざるトラブルを減らせるでしょう。
git checkoutでファイルを復元する
次に、特定のファイルを以前の状態に戻したい場合のgit checkoutの使い方を紹介します。
指定したファイルのみを復元する
コミットの履歴に残っている状態を利用して、今の変更を破棄しつつファイルを元に戻したいときは、次のように実行します。
git checkout コミットハッシュ -- ファイル名
コミットハッシュは、git log
コマンドで取得できるものを指定します。
これで、指定したファイルがそのコミット時点の内容に置き換わります。
もしコミットハッシュを省略してgit checkout -- ファイル名
とだけ書いた場合は、直前のコミット内容に戻る形になります。
しかし、この方法はいま行った変更を破棄してしまうという点に注意が必要です。 必要な変更が残っている場合は、別途ブランチを作成したうえで、そちらに変更を退避するなどの対応を検討したほうが安全でしょう。
HEADを使った復元
もっと手軽に最新コミットの状態へ戻したい場合は、git checkout HEAD ファイル名の形でも操作できます。
git checkout HEAD index.html
こうすると、現時点で作業しているブランチの最新コミットにおけるindex.html
の内容に差し替わります。
「ちょっとだけ実験的なコードを書いたが、やっぱりこのファイルは前の状態に戻したい」というようなケースで便利です。
ファイルを復元すると意図せず変更が失われる可能性があります。 実行前に本当に戻したい内容かどうかを確認することをおすすめします。
実務での活用イメージ
ここまでで、git checkoutの基本的な使い方と、ブランチ切り替え・ファイル復元について学びました。 実務ではこれらを組み合わせながら、複数のブランチで並行して開発を行い、必要に応じて過去の状態に戻すといったフローで作業が進むことが多いです。
機能開発の流れの中で
1. メインブランチから新しいブランチを作成する
git checkout -b でブランチを分ける
2. 新しいブランチで実装を進める
ローカルでコードを書き、問題なく動作するかテスト
3. 途中で別の対応が必要になったら
変更をコミットまたはstashしたうえで、メインブランチや他のブランチへgit checkoutで移動
4. 誤って実装した部分を元に戻したいとき
git checkout コミットハッシュ -- ファイル名 で復元
上記のような流れで開発すると、コードの変更履歴を管理しやすくなります。 特に大人数での開発では、ブランチ管理やファイルの復元作業が頻繁に発生することも多いです。 そのため、git checkoutは日常的に使う可能性が高いコマンドといえます。
ブランチ切り替えとレビューの連携
最近はプルリクエストベースでのコードレビューを実施するケースも多いです。 プルリクエストを出す前にgit checkout mainなどでメインブランチへ戻り、そこに最新の変更が混ざっていないかを確認しておくと、余計な差分を含まずに済みます。 加えて、レビュー担当者が特定のブランチをチェックアウトしてローカルで動作確認をすることもあるため、使いこなせるとやりとりがスムーズになるでしょう。
複数ブランチが存在するプロジェクトでは、ブランチ切り替えのタイミングをチームでルール化すると効率アップが期待できます。
まとめ
この記事では、git checkoutを使ったブランチの切り替え方法やファイルの復元方法を紹介しました。 初心者の方には、ブランチを自由に行き来できるメリットが伝わったかもしれません。 一方で、何気なく操作した場合に変更が失われる可能性もあるため、事前にコミットやstashを利用する意識を持つことが大切です。
いざというときに、過去のコミットからファイルを取り出したり、別のブランチを素早く確認したりできる能力は、実務で役立つ場面が多いです。 特に、大規模開発や複数人での作業では、ブランチの運用ルールとあわせてgit checkoutを使いこなすと、チーム全体の生産性が高まります。
ぜひ日頃からリポジトリをいくつか用意して練習し、git checkoutの操作感に慣れておくとよいでしょう。 慣れてくれば、他のGitコマンドと組み合わせて柔軟に開発プロセスを回せるようになるはずです。