git switchの方が新しいということは知っていたけど結局何が違うの?ということをまとめます
導入時期
git switchは2019年8月に導入されました。結構最近ですね。
git checkoutはご存知の通り昔からあるコマンドですね
git checkout
git checkoutは主に以下の三つの役割を持っています
- ブランチの切り替え
git checkout (ブランチ名)
- 過去のコミットの参照
git checkout (コミットID)
- ファイルの復元
git checkout (コミットID or ブランチ名) ファイル名
ファイルの復元は知りませんでした。意外と多機能ですね。
git checkout -bとかは皆さん使ってるんじゃないですか?
git switch
対してgit switchはブランチを切り替えるための専用コマンドです。
git switch (ブランチ名)
git switchが登場した理由
git checkout は上記の通り多機能な反面、操作ミスによってトラブルが起こりやすいという課題がありました。
git switchはこうした課題を解決するためにブランチの切り替えに特化させたコマンドです。できることが限られているので問題が起こりにくくなったというわけですね。
両者の違い
ここまでで両者の違いをまとめると以下のようになります
- できること
- 安全性
できること
git checkoutは先述の通りブランチの移動だけでなくコミットの復元などの機能も持っており多機能です。
対してgit switchコマンドはブランチの移動だけを機能として持っています。
安全性
git checkoutは多機能であるため間違えると作業途中の変更が消えてしまうなどが発生してしまいますが、git switchではそういった問題が発生することはほとんどありません。
また、switchという単語も直感的で使いやすい理由になると思います。
まとめ
どちらのコマンドを使うかはやりたいことで決まってくるかなと思います。
ただ、ブランチを切り替えるだけであるならgit switchコマンドを使用するのが安全性の観点からはいいと考えています。
以上簡単にではありますがgit checkout と git switchコマンドの違いについてまとめてみました。お役に立てれば幸いです。