Git 2.23から、switchコマンドとrestoreコマンドが追加されていたらしい。2019年8月リリースなので、5年以上経過している。
おそらく、検索上位で引っかかる記事が古く、それを参照して書かれた記事が増殖している。そんな状況だと推察している。
例えばブランチを作成し、そのブランチに切り替えることを一つのコマンドでやりたいと思い、「git ブランチ 作成 切り替え」といったワードで検索すると、上位の記事はほぼ「git checkout -b <branch>」で書かれている。
現状、このコマンドが使えなくなっているわけではないので、「ブランチを作成し、そのブランチに切り替えるのは checkout を使うんだな」という認識になるのである。
今回、switchコマンドを知ったのも、WEBブラウジングでたまたま読んだ記事に書かれていたのであって、gitのコマンドについて調べていた、というような状況ではない。
そんな状況で知ったswitchコマンド、restoreコマンドだが、背景としてはcheckoutでできる操作の範囲が広いのでより操作を明確にする意図があるそう。
確かに今まで使っていてcheckoutコマンドはブランチ操作とファイル操作が混ざっててわかりづらかったように思う。例えば git checkout hoge というコマンドを実行したとき、
- hogeブランチがあればhogeブランチに切り替え
- hogeブランチが存在せず、hogeファイルが変更されている場合、hogeファイルの変更を取り消し
といった動作になる。このような状況になるのはまず無いが、確かにコマンドが分かれている方がわかりやすい。
コメント