git switch / git restore コマンドってなんぞ?
October 13, 2024
先日、同僚が git switch ほげほげ
とコマンドを打っていて、ん? switch
って何?初めて見た、となりました。
端的にいうと git checkout
コマンドが持っている次の2つの役割を別のコマンドに分けることで用途を明確にしようというものだそうです。
- ブランチの切り替えや作成 →
git switch
として明確化 - 編集したファイルの復元 →
git restore
として明確化
これらのコマンドは 2019 年に公開されたバージョン 2.23.0 で導入されていたようです。特に新しいものでもなく、単に自分が知らなかっただけでした。https://github.com/git/git/blob/master/Documentation/RelNotes/2.23.0.txt
git checkout
と git 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
ですべて操作している皆さん、気分転換でたまには switch
や restore
のコマンドも使っても良いかもしれませんね。