2024.02.26
git checkout と git switch それぞれの使い方を比較する
- PC操作
はじめに
Gitのブランチ操作は、checkout
コマンドを使用して行われてきました。しかし、Gitのバージョン2.23.0で新たに導入されたswitch
コマンドを使用すると、ブランチ操作をより直感的で明確に行うことができます。
switch
コマンドはブランチの切り替えや新しいブランチの作成に特化しています。一方で、checkout
コマンドはブランチの切り替えに加えて、作業ディレクトリのファイルの変更や復元にも使用されます。
この記事では、switch
コマンドの基本的な使い方と機能を紹介します。また、checkout
コマンドとの比較を行い、両者の違いとそれぞれのコマンドが適した使用状況について解説します。最後に、switch
コマンドを使った実践的な使用例を提供します。
gitとGitHubについてはこちらで解説しています。
https://envader.plus/article/68
Git switch コマンドの基本
Gitのswitch
コマンドは、ブランチ間の移動をより直感的で簡単にするために設計されました。こちらでは、switch
コマンドの基本的な使い方と機能について解説します。
ブランチの切り替え
switch
コマンドの最も基本的な使用法は、既存のブランチ間での移動です。コマンドは以下のように使用されます。
git switch <ブランチ名>
このようにして指定されたブランチに切り替えることができます。例えば、develop
ブランチに移動したい場合は、以下のように入力します。
git switch develop
新しいブランチの作成と切り替え
switchコマンドを使用すると、新しいブランチを作成し、そのブランチに直接切り替えることができます。-cオプションを使用して、以下のように実行します。
git switch -c <新しいブランチ名>
例えば、feature/new-feature
という新しいブランチを作成する場合、以下のコマンドを入力します。
git switch -c feature/new-feature
追跡ブランチの切り替え
リモートリポジトリのブランチを追跡する新しいローカルブランチを作成する場合にもswitch
コマンドが役立ちます。--track
オプションを使って、リモートのブランチと同じ名前の新しいローカルブランチを作成し、切り替えます。
git switch --track origin/<ブランチ名>
例えば、リモートリポジトリのmain
ブランチを追跡するためには、以下のようにします。
git switch --track origin/main
git checkoutコマンドとの比較
Gitのswitch
コマンドは、checkout
コマンドの機能の一部をより使いやすくするために導入されました。こちらでは、switch
とcheckout
の主な機能の違いと、それぞれのコマンドが最適な使用状況について説明します。
git switchが導入された背景
これまでは、Gitではブランチの切り替えや新しいブランチの作成などの操作はcheckout
コマンドを使用して行われていました。しかし、checkout
はブランチ操作の他にも、作業ディレクトリの変更やファイルの復元など多岐にわたる機能を持っていました。つまり多機能が故に、特に新しいユーザーにとっては混乱の原因となりがちでした。
switchとrestoreへの分割
git checkout
の多機能すぎるという問題に対処するため、Gitの開発者はcheckout
コマンドを2つの専用コマンドに分割しました。
-
git switch
この新しいコマンドはブランチの切り替えに特化しています。switchは、現在のブランチから別のブランチに移動する操作を、より明確かつ直感的に行うことができます。
-
git restore
作業ディレクトリやステージングエリア(インデックス)のファイルの状態を変更するためのコマンドです。これにより、コミットされていない変更を元に戻したり、過去のコミットから特定のファイルを復元するような操作が行えます。
結局switchでいいの?
結論として、Gitのswitch
コマンドは、特にブランチ操作に関しては、より使いやすく直感的な選択となるでしょう。しかし、switchコマンドがすべてのケースでcheckout
コマンドを完全に置き換えるわけではありません。次に説明する機能の違いなどを理解して使い分けましょう。
switchとcheckoutの機能の違い
機能 | switch | checkout |
---|---|---|
ブランチの切り替え | ○ | ○ |
新しいブランチの作成 | ○ | ○ |
作業ディレクトリの変更 | ✕ | ○ |
ファイルの状態の復元 | ✕ | ○ |
使い分けのポイント
目的 | 使用するコマンド |
---|---|
ブランチの切り替えや新規作成 | switch |
特定のコミットやブランチの状態に作業ディレクトリを戻す | checkout |
switchのメリットとデメリット
-
メリット
- ブランチ操作がシンプルでわかりやすい
-
デメリット
- 作業ディレクトリの変更やファイルの復元ができない
checkoutのメリットとデメリット
-
メリット
- ブランチ操作に加えて、作業ディレクトリの変更やファイルの復元など、多彩な機能を利用できる
-
デメリット
- ブランチ操作が複雑になる可能性がある
実践的な使用例
効率的なブランチ間の作業
-
フィーチャーブランチの素早い切り替え
新しい機能を開発する際、
git switch -c feature/<feature-name>
を使って新しいフィーチャーブランチを作成し、すぐに作業を開始できます。これと似た操作をcheckoutコマンドで行う場合はgit checkout -b feature/<feature-name>
となりますが、switchコマンドの方がブランチの作成と切り替えの意図がより明確です。 -
使用の簡潔さ
switch
コマンドは新しいブランチ操作に特化しているため、同じ操作をより直感的に行うことができます。checkout
コマンドはより汎用的ですが、そのために複数の機能を覚える必要があります。
コマンドのショートカットと組み合わせ
-
エイリアスの利用
よく使用するswitchコマンドにエイリアスを設定することで、コマンドの入力を簡略化できます。例えば、
git config --global alias.sw switch
を実行すると、git sw
でswitchコマンドを呼び出せるようになります。 -
他のGitコマンドとの組み合わせ
switchコマンドは、
git merge
やgit rebase
などの他のGitコマンドと組み合わせて使用することで、ブランチの統合やリベース作業を効率的に行うことができます。
まとめ
Gitのswitch
コマンドは、ブランチの切り替えや新しいブランチの作成に特化したコマンドです。checkout
コマンドとの違いを理解して、適切なコマンドを選択することで、Gitを使ったバージョン管理をより効率的かつ効果的に行うことができます。
基本的な使い方
# 既存のブランチに切り替える
git switch <ブランチ名>
# 新しいブランチを作成し、そのブランチに切り替える
git switch -c <新しいブランチ名>
checkoutとの違い
- switchコマンドは、ブランチの切り替えや新しいブランチの作成に特化している。
- checkoutコマンドは、ブランチの切り替えや新しいブランチの作成に加えて、作業ディレクトリのファイル変更などの複数の機能を持ち、より汎用的である。
実践的な使用例
効率的なブランチ間の作業: git switchコマンドとgit mergeコマンドを組み合わせて使用することで、ブランチの統合をよりスムーズに行うことができる。
以上を踏まえ、git checkout
からgit switch
を使うように切り替えてはいかがでしょうか?
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.03.05
【Mac】作業効率が大幅アップするランチャーアプリAlfred
Alfredを使いこなせるとマウスやトラックパッドを使用せずに、キーボードのみで操作が行えるようになるため作業効率が大幅に改善されます。
- PC操作
2023.03.12
【無料】打倒Alfred?コマンドランチャーアプリRaycastのおすすめ機能3選
Raycastではさまざまな機能を無料で使用することができるため、今回はインストール方法からRaycastの活用術までを解説します。
- PC操作
2023.08.25
エンジニアを目指すならタイピング速度はどれくらいが目安?
エンジニアにとってタイピング速度が重要な理由はもちろん、タイピング速度の練習としてオススメのゲームも解説しています。
- PC操作