1. ホーム
  2. 記事一覧
  3. git switchでブランチの切り替え|ブランチ操作の新定番

2025.12.14

git switchでブランチの切り替え|ブランチ操作の新定番

    Gitでブランチを切り替える時、「git checkout」コマンドを使っていませんか?実は git checkout は多機能で便利な一方、初心者には少しわかりづらく、操作を誤るとファイルの変更が消えてしまうこともあります。

    そこで、Git初心者の方には、ブランチの切り替えに特化した git switch コマンドがおすすめです

    この記事では、git switch の基本的な使い方から、従来の git checkout との違い、便利なオプションやトラブル時の対処法までを、初心者の方でもわかりやすく解説していきます。

    git switch を使いこなせるようになると、ブランチの切り替え操作がもっと直感的になり、開発作業もスムーズになります。ぜひ一緒に学んでいきましょう。

    Gitについての基本

    Gitは、ファイルの変更履歴を管理できるバージョン管理ツールです。個人作業はもちろん、複数人での開発でも「誰が・いつ・何を」変更したのかを記録でき、安心して作業を進められます。

    基本を理解すれば、効率的にコードを管理できるようになります。Gitの仕組みや使い方をさらに詳しく知りたい方は、以下の記事も参考にしてください。

    ▼Gitを基礎から学びたい方はこちら

    【初心者向け】GitHubとは?必須知識と使い方について解説!

    https://envader.plus/article/68

    ▼Gitコマンド早見表はこちら

    必見!現場で役立つGitコマンド29選をまとめて紹介!

    https://envader.plus/article/402

    git switchとは

    git switch は、ブランチを切り替えるための専用コマンドです。従来の git checkout よりもシンプルでわかりやすく、初心者でも安全に使えるのが大きな特長です。

    このコマンドは、2019年にリリースされた Git 2.23 で登場しました。それまでブランチ切り替えに使われていた git checkout は多機能で便利な反面、操作ミスによるトラブルも起こりやすいという課題がありました。

    git switch は、そうした課題を解決するために、ブランチの切り替え専用として導入されたコマンドです。機能が限定されている分、動作がわかりやすく、間違いも起こりにくくなっています。

    git switchとgit checkoutの違い

    git switchgit checkout は、どちらもブランチを切り替えるためのコマンドですが、できることの範囲や使い方のわかりやすさに違いがあります。主な違いは次の3点です。

    機能の違い:git switchはブランチ切り替えに特化

    git switch はブランチの切り替えに特化したコマンドです。

    一方のgit checkout は、ブランチの切り替えだけでなく、コミットの移動やファイルの復元もできる多機能コマンドです。

    安全性の違い:git switchは誤操作のリスクが低い

    git switch は、操作によってファイルの中身が意図せず変わるといったリスクがほとんどありません。

    一方で git checkout は多機能なぶん、操作方法を誤ると作業途中の変更が失われるなどのトラブルにつながる可能性があります。

    コマンド名の直感性:switchは意味が分かりやすい

    switch は「切り替える」という意味そのままなので、Gitに不慣れな方でも用途が直感的に理解できます。一方で checkout は意味が広く、初心者には少しイメージしにくい場合があります。

    このように、git switch はシンプル・安全・わかりやすいという3つの点で初心者に最適なコマンドです。ブランチの切り替えだけが目的であれば、git checkout よりもおすすめです。

    2つのコマンドの違いについては、以下の記事でさらに詳しく解説しています。それぞれのコマンドの比較や、実践的な使用例を紹介していますので、あわせてご覧ください。

    git checkout と git switch それぞれの使い方を比較する

    https://envader.plus/article/300

    git switchの使い方

    git switch は、既存のブランチへ切り替えたり、新しいブランチを作成しながら切り替えたりするのが基本的な使い方です。

    既存のブランチに切り替え

    既存のブランチに切り替える場合は、以下のような形で使用します。

    # 既存のブランチに切り替え
    git switch <ブランチ名>

    例えば、「feature/1」という名前のブランチに切り替えたい場合は以下のように実行します。

    # feature/1ブランチに切り替え
    git switch feature/1

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

    新しいブランチを作成して同時に切り替えたい場合は、-c オプションを使用します。

    # 新しいブランチを作成して切り替え
    git switch -c <新しいブランチ名>

    例えば「feature/1」という名前のブランチを作成して切り替える場合は、以下のように実行します。

    # feature/1ブランチを作成して切り替え
    git switch -c feature/1

    これにより、「feature/1」という新しいブランチが作成され、同時にそのブランチに切り替わります。一つのコマンドで作成と切り替えが同時にできるため、とても効率的です。

    git switchのオプション紹介

    git switch コマンドには、様々な場面で役立つオプションが用意されています。主要なオプションは以下です。

    オプション説明
    -c新しいブランチを作成して切り替え
    -C既存ブランチがあっても強制的に上書き作成して切り替え
    -f, --force未保存の変更がある場合でも強制的に切り替える
    -m, --merge未保存の変更をマージして切り替える(競合がない場合のみ)
    -t, --trackリモートブランチを追跡するローカルブランチを作成して切り替え

    これらのオプションを把握しておくことで、git switch をより柔軟かつ効率的に使いこなせるようになります。

    次は、実際にこれらのコマンドを操作しながら、git switch の基本的な使い方をハンズオンで体験してみましょう。

    git switchの使い方ハンズオン

    実際に git switch コマンドを使って、ブランチの操作を体験してみましょう。まずは練習用の環境を作成してから、ブランチ操作を行います。

    1. テスト用のリポジトリを作成

    はじめに、テスト用のローカルリポジトリを作成します。

    # 新しいディレクトリを作成
    mkdir git-switch-test
    cd git-switch-test
    
    # Gitリポジトリを初期化
    git init

    2. 初期ファイルを作成してコミット

    ブランチ操作の練習をするために、初期ファイルを作成します。

    # hello.txtファイルを作成・Hello Worldを追加してコミット
    echo "Hello World" > hello.txt
    git add hello.txt
    git commit -m "Hello World を追加"

    3. 現在のブランチを確認

    まず、現在どのブランチにいるかを確認します。

    # 現在どのブランチにいるかを確認
    git branch

    実行結果例:

    git branch
    * main

    現在のブランチには * マークが付いています。初回作成時は通常 main(または master )ブランチが表示されます。

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

    -c オプションを使用して、新しいブランチを作成しながら切り替えます。

    # 新しいブランチを作成しながら切り替え
    git switch -c feature/1-hello.txt

    実行後、以下のメッセージが表示されれば成功です。

    Switched to a new branch 'feature/1-hello.txt'

    5. ブランチ一覧を確認

    作成したブランチが正しく存在するかを確認してみましょう。

    # ブランチの確認
    git branch

    実行結果例

    * feature/1-hello.txt
      main

    * が付いているのが現在のブランチです。 feature/1-hello.txt ブランチが作成され、切り替わっていることが確認できました。

    6. 元のブランチに切り替える

    元のブランチ(ここでは main)に戻してみましょう。

    # 元のmainブランチに切り替える
    git switch main

    実行結果例:

    # 元のmainブランチに切り替える
    git switch main
    Switched to branch 'main'

    確認のため、再度ブランチ一覧を表示してみます。

    # mainブランチに切り替わっていることを確認
    git branch
      feature/1-hello.txt
    * main

    main ブランチに戻っていることがわかります。

    7. 既存のブランチに再度切り替える

    今度は、先ほど作成した feature/1-hello.txt ブランチにもう一度切り替えてみましょう。

    # 既存ブランチfeature/1-hello.txtに切り替え
    git switch feature/1-hello.txt

    実行結果例:

    # 既存ブランチfeature/1-hello.txtに切り替え
    git switch feature/1-hello.txt
    Switched to branch 'feature/1-hello.txt'

    確認のため、再度ブランチ一覧を表示してみます。

    # ブランチの確認 「feature/1-hello.txt」ブランチに切り替わっていることを確認
    git branch
    * feature/1-hello.txt
      main

    feature/1-hello.txt ブランチに切り替わりました。

    8. ブランチごとに異なる作業を行う

    ブランチが分かれていると、それぞれのブランチごとに違う作業内容を管理できます。以下のように、別の内容を追記してみましょう。

    # feature/1-hello.txtブランチで新しい変更を追加
    echo "Feature/1 Branch Content" >> hello.txt
    git add hello.txt
    git commit -m "Feature/1 branch用の変更を追加"

    feature/1-hello.txt ブランチのhello.txtの内容を確認します。先ほど追加した Feature/1 Branch Content が入力されています。

    cat hello.txt 
    Hello World
    Feature/1 Branch Content

    次にmain ブランチに切り替えます。

    # mainブランチに切り替える
    git switch main

    main ブランチのhello.txtファイルの内容を確認します。

    # mainブランチでファイル内容を確認
    cat hello.txt

    実行例:

    # mainブランチでhello.txtファイルの内容を確認
    cat hello.txt
    Hello World

    main ブランチに切り替えると、最後に追加した Feature/1 Branch Content が表示されないことが確認できます。このように、ブランチを使うことで作業内容を安全に分けて管理できます。

    次のセクションでは、git switch を使った応用例や、操作ミスによるトラブルを回避するための実践的な知識をご紹介します。ブランチ操作をより安心して進めるためのコツを学んでいきましょう。

    git switchの応用とトラブル回避例

    実際の開発現場では、様々な状況で git switch コマンドを使用します。このセクションではよくある応用例とトラブル回避方法をご紹介します。

    ブランチ名を間違えたとき

    存在しないブランチ名を指定すると、次のようなエラーが表示されます。

    fatal: invalid reference: wrong-branch-name

    この場合は、ブランチ名を再確認して正しい名前で再実行します。

    # ブランチ一覧を表示
    git branch -a
    
    # 正しいブランチに切り替え
    git switch feature/1-hello.txt

    リモートブランチからローカルブランチを作成する

    チームメンバーが作成したリモートブランチに切り替えたいときは、-t オプションを使うことで、リモートブランチを追跡するローカルブランチを新しく作成して切り替えることができます。

    まず、リモートの最新情報を取得しておきます。

    # リモートの最新情報を取得
    git fetch origin

    その上で、リモートブランチからローカルブランチを作成します。

    # リモートのブランチを元にローカルブランチを作成
    git switch -t origin/feature/2-greeting

    この操作により、リモートブランチ origin/feature/2-greeting を追跡する、ローカルブランチfeature/2-greeting が作成されます。

    タグ(tag)に切り替える

    git switch は、通常はブランチ名を指定して使いますが、タグ名を指定して過去の特定の状態に切り替えることもできます。

    # タグを指定して過去の状態に切り替え
    git switch v1.0.0

    このようにタグ名を指定するだけで、該当バージョンの内容に切り替えられます。ただし、タグはブランチではないため、切り替えると「detached HEAD(デタッチド・ヘッド)」状態になります。

    「detached HEAD」とは、ブランチ名のない状態で一時的に過去の履歴を操作している状態です。 このままコミットしても、履歴がブランチに残らないため、作業を続ける場合は新しいブランチを作成するのがおすすめです。

    # タグをもとにブランチを作成
    git switch -c feature/3-fix-from-v1.0.0 v1.0.0

    この操作で、v1.0.0 タグから新しいブランチ feature/3-fix-from-v1.0.0 が作成され、そのまま切り替わります。

    Gitのタグについては、以下の記事で詳しく解説しています。git tag の基本から開発現場での活用例などを学べますので、ぜひご覧ください。

    リリース管理に欠かせない!コミットにタグを付ける「git tag」コマンドの使い方

    https://envader.plus/article/367

    未コミットの変更があるとき

    作業中の変更をコミットせずに、他のブランチへ切り替えようとするとエラーが出る場合があります。これは、現在の変更が切り替え先のブランチに上書きされる可能性があるためです。

    補足

    未コミットの変更があるときでも、ファイルの競合がなければ変更はそのまま持ち越されます。つまり、競合の可能性があるときだけエラーになります。

    # 例:mainブランチで編集中にfeature/1ブランチに切り替え
    git switch feature/1-hello.txt
    error: Your local changes to the following files would be overwritten by checkout:
            hello.txt
    Please commit your changes or stash them before you switch branches.
    Aborting

    このエラーの対処法は、主に次の3つです。

    1. 変更をコミットする

      変更内容をコミットすることで、ブランチの変更が可能になります。

      git add hello.txt
      git commit -m "作業内容をコミット"
      git switch feature/1-hello.txt
    2. 変更を一時的に保存する

      変更をコミットしたくない場合は、一時保存してから切り替える方法もあります。

      # 変更を一時的に退避する
      git stash
      git switch feature/1-hello.txt
      
      # 一時的に退避した変更を後で復元
      git stash pop
    3. 強制的に切り替える

      -f オプションを使うと強制的に切り替え可能ですが、変更内容が失われるため注意が必要です。

      # 強制的にブランチを切り替える
      git switch -f main

      ※この方法は未保存の変更が完全に失われてしまうため、重要な作業内容がある場合は使用を避けてください。

    間違ったブランチで作業してしまったとき

    間違ったブランチで作業してしまった場合も、git stash を使えば簡単に修正できます。

    mainブランチで作業してしまった

    # mainブランチで以下の変更を適用してしまった
    echo "Wrong branch content" >> hello.txt
    git add hello.txt

    変更を一時保存してから、正しいブランチへ切り替えます。

    # 変更を一時保存
    git stash
    
    # 正しいブランチに切り替え
    git switch feature/1-hello.txt
    
    # 変更を反映
    git stash pop
    git commit -m "正しいブランチで変更を反映"

    補足:git stashとは

    git stash は、作業中の変更を一時的に退避しておける便利なコマンドです。コミットせずに別のブランチへ切り替えたいときや、一時的に作業を中断したいときに役立ちます。

    git stashについて、詳しく知りたい方はこちらの記事もおすすめです。

    git stashとは?基本の使い方から活用方法、注意点まで徹底解説

    https://envader.plus/article/344

    このように git switch コマンドは、git stash など他のコマンドと併用することで、柔軟なブランチ操作をすることが可能です。

    さまざまなGitコマンドを活用できるようになると、Git操作に自信がつきます。もし、Git操作が不慣れと感じている方には、次に紹介する学習方法がおすすめです。

    Gitの使い方を学ぶ:おすすめの学習方法

    「Gitの操作、まだちょっと不安かも…」そんな方におすすめなのが、「エンベーダー」です。 Gitの基本コマンドをはじめ、エンジニアに欠かせないLinuxの知識や操作をブラウザ上で気軽に学べる学習サービスです。

    環境構築は不要。わずか5秒で学習環境が起動し、実際にコマンドを入力しながら学べるので、ゲーム感覚で楽しくスキルを習得できます

    エンベーダー公式サイト - Gitの使い方コース

    https://envader.plus/course/5/scenario/1055

    ポイント1:コマンド入力はすべてブラウザ上で完結。実際に手を動かして学べます。

    ポイント2:入力したコマンドの正誤や解説を、すぐに確認できます。

    ポイント3:Gitだけでなく、Linuxやデータベース操作など、今後のキャリアに活かせる学習コースも豊富に用意されています。

    エンベーダーの学習コース一覧

    https://envader.plus/course

    いくつかのコースは無料で体験できるため、「コマンドに慣れたい」「楽しくGitを身につけたい」という方は、ぜひ一度エンベーダーを試してみてください。

    この記事で学んだこと

    この記事では、初心者におすすめの git switch コマンドを中心に、基本的な使い方や git checkout との違い、トラブル回避の実践例までを紹介しました。

    git switch は、ブランチの切り替えに特化したGitの新しいコマンドで、git checkout よりもシンプルで安全に使えるのが特長です。特に初心者にとっては、操作内容が明確で、誤操作によるトラブルを防ぎやすいという大きなメリットがあります。

    また、git stash など他のコマンドと組み合わせることで、柔軟なブランチ操作も可能になります。

    最初は戸惑うこともあるかもしれませんが、一つひとつ理解を積み重ねていけば、着実に使いこなせるようになります

    今回の内容を振り返りながら、ぜひ今後の開発や学習に活かしてみてください。

    参考資料

    以下のリンクは、この記事で解説した手順や概念に関連する参考資料です。より詳しく学びたい方は、ぜひご覧ください。

    • Git公式ドキュメントgit-switch

    https://git-scm.com/docs/git-switch

    【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

    IT未経験者必見 USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

    プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。

    「フリーランスエンジニア」

    近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。

    「成功する人とそうでない人の違いは何か?」

    私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。

    比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。

    多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、

    note記事3000いいね超えの殿堂記事 LINE登録で記事を見る

    エンベーダー編集部

    エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

    RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

    関連記事