git switch / git restore コマンドってなんぞ?

git switch / git restore コマンドってなんぞ?

October 13, 2024

先日、同僚が git switch ほげほげ とコマンドを打っていて、ん? switch って何?初めて見た、となりました。

端的にいうと git checkout コマンドが持っている次の2つの役割を別のコマンドに分けることで用途を明確にしようというものだそうです。

  1. ブランチの切り替えや作成 → git switch として明確化
  2. 編集したファイルの復元 → git restore として明確化

これらのコマンドは 2019 年に公開されたバージョン 2.23.0 で導入されていたようです。特に新しいものでもなく、単に自分が知らなかっただけでした。https://github.com/git/git/blob/master/Documentation/RelNotes/2.23.0.txt

git checkoutgit switch および git restore で同じ操作を実行する場合のコマンドを並べてみます。

checkout switch restore
既存の main ブランチへ切り替える git checkout main git switch main
新しく develop ブランチを作成し切り替える git checkout -b develop git switch -c develop
すべてのファイルの変更を取り消す git checkout . git restore .

checkout ですべて操作している皆さん、気分転換でたまには switchrestore のコマンドも使っても良いかもしれませんね。