Gitのチェックアウトとは?switchとの違いも丁寧に解説

Gitのチェックアウトとは?switchとの違いも丁寧に解説

git checkoutはどう使う?
git switchとの使い方の違いがわからない
過去のコミットを参照したい

Gitを使い始めたばかりだと、checkoutコマンドの使い方がよく分からず、困ってしまうこともありますよね。

本記事では、git checkoutの基本的な使い方から、git switchとの使い分けまで、初心者向けに丁寧に解説します。

Gitチェックアウトができる3つの主な機能

Gitチェックアウトができる3つの主な機能

git checkoutは、Gitのリポジトリ内で作業場所を移動したり、作成したりするコマンドです。

ブランチを切り替えたり、新しいブランチを作成したりすることで、さまざまな開発タスクを効率的かつ安全に進められます。

主な役割は、以下の3つです。

  1. ブランチの切り替え
  2. 過去のコミットの参照
  3. ファイルの復元

別の開発ラインに移動したいときはブランチの切り替え、前に行った作業状態を確認したいときは過去のコミットを参照します。

誤ってファイルを上書きしてしまった場合でも、git checkoutを使えば、以前のバージョンに簡単に戻すことが可能です。

このような役割を理解することで、git checkoutを効果的に使いこなせるようになります。

Git2.23以降では、ブランチ切替にはgit switch、ファイルの復元にはgit restoreの使用が推奨されています。わかりやすくて安全に操作できます。

Gitチェックアウトの基本的な構文

git checkoutの基本的な構文は、以下の通りです。

git checkout [オプション] <どこへ>

<どこへ>の部分には、切り替えたいもの(ブランチ名、コミットID、ファイルパスなど)を指定しましょう。

たとえば、mainブランチからdevelopに移動したい場合は以下のように記述します。

git checkout develop

特定のコミットに戻りたいときは、以下のようにコミットIDを指定します。

git checkout a1b2c3d4

特定のファイルを以前の状態に戻したいときは、次のように書きます。

git checkout a1b2c3d4 index.html

上記を記述すると、誤ってindex.htmlを編集したときに、コミットID「a1b2c3d4」の状態までindex.htmlを戻します。

このようにブランチ名やコミットID、ファイルパスなどを使い分けることで、さまざまな操作が可能です。

具体的な使い方は、次の章から説明していきます。

Gitチェックアウトの基本的な使い方

Gitのチェックアウトの使い方を以下の目的別に解説します。

  • ブランチの切り替え
  • 新しいブランチを作成して切り替え
  • ファイルの復元
  • 過去のコミットの参照

目的に合った使い方をチェックしてみてください。

ブランチの切り替え

ブランチの切り替えは、git checkoutの一般的な使い方です。

ブランチの切り替えをすると、作業ブランチを移動し、異なる開発ラインでの作業を開始できます。

以下の構文で指定したブランチを作業ブランチに切り替えられます。

git checkout <移動したいブランチ名>

たとえば、feature-new-buttonというブランチに移動したい場合は以下のように書きます。

git checkout feature-new-button

実行すると、現在の作業場所がfeature-new-buttonブランチに移動します。

パソコン上のファイルも、feature-new-buttonブランチが最新の状態に切り替わります。

Git 2.23以降では、ブランチの切り替えはgit switchコマンドを使うのがおすすめです。よりシンプルでわかりやすく使えます。

新しいブランチを作成して切り替え

今のブランチはそのままで、新しい機能の開発を始めたいときは-bオプションを使用します。

-bオプションは新しいブランチを作成し、同時にそのブランチに移動できます。

git checkout -b <新しいブランチ名>

たとえば、mainブランチからfeature-add-loginという新しいブランチを作成し、すぐにそのブランチで作業を開始したいときは以下のように記述します。

git checkout -b feature-add-login

一つのコマンドで、以下の2つが同時に行われます。

  1. feature-add-login ブランチが新しく作られる
  2. 作業場所が feature-add-login ブランチに切り替わる

-bオプションを使用すると既存ブランチに影響を与えることなく、新しい機能の開発やバグ修正に集中できます。

Git 2.23以降では、新しいブランチの作成と切り替えはgit switch -cコマンドを使うのがおすすめです。

ファイルの復元

間違えてファイルを上書きしたときや過去のバージョンに戻したいときは、git checkoutで過去のファイルを復元できます。

ファイルの復元の構文は、以下の通りです。

git checkout <コミットIDまたはブランチ名> — <ファイルパス>

たとえば、「index.html を3日前の状態に戻したい」という場合は、次の手順で作業を進めます。

  1. git log -- index.htmlでindex.htmlの変更履歴を見る
  2. 戻したい時点のコミットIDをチェックする(コミットIDがa1b2c3d4と仮定する)
  3. git statusで現在の状態を確認する
  4. 以下のコマンドを実行する

git checkout a1b2c3d4 — index.html

コマンドを実行すると、index.html だけがa1b2c3d4の時点の状態に戻り、他のファイルは影響を受けません。

復元されたファイルは、自動的に「変更されたファイル」としてステージングエリアに追加され、すぐにコミットできる状態になります。

チェックアウトの前に、git statusで現在の状態を確認することで、コミットしていない変更が消えてしまうのを防げます。

ファイルの復元には、Git 2.23以降ではgit restore コマンドの使用が推奨されています。

過去のコミットの参照

一時的に過去のコミットの状態を確認したい、あるいは過去のコミットから新しいブランチを作成したい、といった場合には、以下の構文を使用します。

git checkout <コミットID>

たとえば、「a1b2c3d4 というコミットの状態を確認したい」という場合は、以下のように記述します。
git checkout a1b2c3d4
コマンドを実行すると、作業ディレクトリ全体がa1b2c3d4の時点の状態に切り替わり、ファイルは過去の状態に戻ります。

特定のファイルだけを戻したい場合は<ファイルパス>を後ろにつけます。

git checkout a1b2c3d4 — index.html

特定のコミットを参照することで、過去のバージョンのコードを確認したり、その時点から新しいブランチを作成して作業を分岐させたりすることが可能です。

Detached HEAD状態になったとき
Detached HEAD状態になると、コミットはどのブランチにも属さなくなるため、通常は避けるべきです。過去のコミットを参照した後に、新しいブランチを作成するか、既存のブランチにチェックアウトして作業を続けるようにしましょう。

Gitチェックアウトのオプション一覧

git checkoutのオプションはさまざまありますが、ここでは現場でよく使用する5つのオプションを表にまとめました。

使用例内容
<ブランチ名>指定したブランチに切り替える。<br>例: git checkout feature
-b <新しいブランチ名>新しいブランチを作成し、そのブランチに切り替える。<br>例: git checkout -b fix/bug
-- <ファイル名>ステージングエリアからファイルを取り消す。作業ディレクトリの変更は保持する。<br>例: git checkout -- index.js
<コミットID> <ファイル名>指定したコミット時点のファイルの状態に戻す。<br>例: git checkout abc1234 style.css
-f, --forceワーキングツリーのローカルの変更を強制的に破棄してチェックアウトする。<br>例: git checkout -f main

git checkoutは、主にブランチを切り替える際に使用するコマンドです。

新しい機能を追加したりバグを修正したりする際は、git checkout -b <新しいブランチ名>で作業を始めましょう。

元のブランチに影響を与えず、安全に作業を進められて、非常に便利です。

git checkoutを実行する前には、git statusコマンドで現在の状態を確認する習慣をつけましょう。

「まだコミットしていない変更がありますよ」といった情報を確認でき、「変更が消えてしまった」という事態を防げます。

少しずつgit checkoutコマンドを使いこなし、Gitの便利さを実感していきましょう。

git checkoutとgit switchの使い分け完全ガイド

ここではgit checkoutとgit switchの違いと使い分けを紹介します。

  • git checkoutとgit switchの機能比較
  • git checkoutとgit switchの状況に応じた使い分け

気になる項目から確認してみてください。

git checkoutとgit switchの機能比較

git checkoutとgit switchの違いをスッキリ整理し、どんな時にどちらを使えば良いのかを、わかりやすく解説します。

それぞれの機能を以下の表にまとめました。

git switchgit checkout
ブランチの切り替え
新しいブランチの作成と切り替え◯(-bオプション)
過去コミットの参照×
ファイルの復元×

表を見ると、git switchはブランチの切り替えや作成に特化したシンプルなコマンドということがわかります。

git checkoutは、ブランチ操作や過去のコミットの参照、ファイルの復元もできる多機能コマンドという特徴があります。

これらから、「ブランチの操作だけしたい」ときは git switch、「過去に戻ったり、ファイルを復元したりしたい」ときはgit checkoutを使うと良いでしょう。

【目的別】git checkoutとgit switchの早見表

Gitには、ブランチを切り替えるためのコマンドとして、git checkoutの他にgit switchがあります。

どちらを使用したらいいか迷わないために、以下に状況に応じた使い分けを表にまとめました。

目的おすすめコマンド備考
ブランチを切り替えるgit switch <ブランチ名>
新しいブランチを作成して、すぐにブランチを切り替えたいgit switch -c <新しいブランチ名>-c はcreateの略
過去のコミットの状態を見るgit checkout <コミットID>Detached HEAD状態になるので注意
ファイルを過去のバージョンに戻すgit checkout <コミットID/ブランチ名> <ファイルパス>git restoreコマンドの方が安全でおすすめ
特に理由はないけど、ブランチを切り替えたいgit switch <ブランチ名>
ファイルのステージングを取り消すgit checkout -- <ファイル名>git restore –stagedがおすすめ

使い分けのポイントは、過去のコミットやファイル操作もするならgit checkoutブランチ操作が中心ならgit switchを選ぶことです。

まずはgit switchから始め、必要に応じてgit checkoutを活用していくことをおすすめします。

git switchはブランチの切り替え専用に作られたコマンドのため、「ブランチを切り替えるならgit switch」と覚えやすく、初心者もシンプルで直感的に使用できます。

Gitチェックアウトのよくある4つのトラブルと解決策

git checkoutでよくある4つのトラブルの対処法を紹介します。

  1. git checkoutができない
  2. コンフリクトの発生
  3. Detached HEADモードからの復帰
  4. ファイル変更の取り消し

これらのトラブルの対処法を参考に、git checkoutで発生する問題を解決し、スムーズな開発につなげましょう。

1. git checkoutができない

git checkoutができないときは、最初にgit statusで確認しましょう。

git status

よくある原因は、作業ディレクトリが「クリーンでない」状態、つまりコミット前の変更が残っていることです。

git checkoutでブランチを切り替えると、作業ディレクトリの内容が指定したブランチの状態に更新されます。

コミットされていない変更があると、上書きされて消えてしまう可能性があるため、Gitは処理を中断します。

具体的な対処法は、以下の3つです。

  1. 変更をコミットして残す
  2. 変更を一時的に退避させる
  3. 変更を破棄する(元に戻さない)

それぞれの対処法を以下の表にまとめました。

対処法説明
変更をコミットして残す変更をリポジトリに記録する。git addで変更をステージングエリアに追加し、git commitでコミットする。
変更を一時的に退避させる変更を一時的に隠す。git checkoutの後、git stash popで変更を元に戻す。
変更を破棄する(元に戻さない)変更を完全に破棄する。git clean -fdは、追跡されていないファイルやディレクトリも全て削除するため、使用には十分注意してください。

git statusで状態を確認後、上記いずれかの方法で対処し、再度git checkoutを試してみてください。

2. コンフリクトの発生

異なるブランチで同じファイルの同じ場所を変更していると、チェックアウト時にコンフリクト(衝突)が発生することがあります。

Gitはどちらの変更を残すべきか判断できないため、手動での解決が必要です。

コンフリクトが発生したファイルには、以下のようなマーカーが表示されます。

<<<<<<< HEAD
ブランチAでの変更
======= ブランチBでの変更
>>>>>>> ブランチ名

<<<<<<< HEADから=======までが、現在のブランチでの変更箇所です。

=======から>>>>>>>ブランチ名までが、チェックアウトしようとしているブランチでの変更箇所を示しています。

どちらの変更を残すか、あるいは両方の変更をどのように組み合わせるかを決めて、コンフリクトマーカー(<<<<<<<、=======、 >>>>>>>)と不要なコードを削除します。

修正したファイルを保存し、以下のコマンドを実行しましょう。

git add <ファイル名>

実行するとコンフリクトが解消されるため、改めてcheckoutを実行する必要はありません。

コンフリクトは、チーム開発ではよく起きます。落ち着いて、変更箇所を比較しながら、正しい状態に戻しましょう。

3. Detached HEADモードからの復帰

git checkout <コミットID>で過去のコミットを参照すると、「Detached HEAD」状態になります。

これは、HEAD(現在の位置を示すポインタ)が特定のコミットを直接指している状態です。

Detached HEADは、過去のバージョンを一時的に確認する際には便利ですが、この状態でのコミットはどのブランチにも属しません。

既存のブランチに戻すには、git checkout <ブランチ名>を実行します。

Detached HEADでの変更を保持したい場合は、git branch <新しいブランチ名>で新しいブランチを作成してから、既存のブランチに戻りましょう。

4. ファイル変更の取り消し

git checkoutでファイル変更を取り消せますが、Gitの新しいバージョン(2.23以降)はgit restoreコマンドの使用がおすすめです。

git checkoutでファイル変更を取り消す方法は、以下の2つです。

過去バージョンで復元git checkout <コミットID/ブランチ名> — <ファイル名>
ステージング取り消しgit checkout — <ファイル名>

git checkoutは、意図しない操作をしてしまう可能性がありますが、git restoreなら安心して使えます。

ファイルの復元が専用のコマンドであるgit restoreは、ステージングを取り消し、作業ディレクトリの変更破棄が明確に分かれています。

git restoreで落ち着いてファイル変更を取り消す場合は、以下の記述で可能です。

ステージング取り消しgit restore –staged <ファイル名> (git add の取り消し)
作業ディレクトリの変更破棄git restore <ファイル名>

これらの操作は基本的に元に戻せません。

作業ディレクトリ内のファイルが、指定した状態(過去のバージョンやステージングエリアの状態)で上書きされ、変更前の状態は失われます。

git statusで状態を確認してから、慎重に実行してみてください。

まとめ:git checkoutをマスターしてレベルアップ!

git checkoutは、ブランチ操作、過去バージョン参照、ファイル復元など、Web制作にも役立つGitコマンドです。

-bオプションでのブランチ作成や、git statusでの状態確認は、安全かつ効率的な開発の基本といえます。

「Gitをもっと深く学びたい」「チーム開発で必要なスキルを身につけたい」「Web制作のスキル全体をレベルアップしたい」という方はデイトラWeb制作コースがおすすめです。

実践的な課題を通して、現場で通用するGitの使い方、Web制作の総合的なスキルが習得できます。

実践的なカリキュラムで、プロのスキルを身につけたい方はチェックしてみてください。

未経験からコーディングを学ぶならデイトラWeb制作コースがおすすめ!

デイトラWeb制作コースは、実務レベルの本格スキルを学び、Web制作を仕事にしたい方におすすめのコースです。

HTML/CSSやjavaScriptの言語の基本はもちろん、デザインカンプからのコーディング、WordPressのオリジナルテーマ作成までカリキュラムに含まれています。

さらに、中級・上級の最終課題はメンターによる課題レビューがあります。現場目線の品質チェックが受けられるため、大幅なスキルアップが期待できるでしょう。

Web制作のスキルを身につけたい方は、ぜひデイトラWeb制作コースをチェックしてみてください!

【Webスキル診断】“一生使えるスキル”を60秒で診断しよう!

CTA-IMAGE 「フリーランスになりたいけど、どんなスキルを身につければいいかわからない」という悩みを解決すべく、東京フリーランスでは【Webスキル診断】をLINEで無料実施中です! Web制作・Webデザイン・アプリ開発・動画編集など「自分に合った理想の働き方は何か」を見極めていただけます。

Web制作カテゴリの最新記事