はじめに
先日Gitのバージョン2.23がリリースされました。
そして、そのリリースの中で試験的に新コマンド switch
と restore
が導入されることが発表されました。
導入の背景として、checkout
コマンドを分離することで、よりわかりやすくする狙いがあるようです。
御存じのとおり、これまでcheckout
には「ブランチの切り替え作業」と「作業ツリーのファイルの復元」の2つの役割がありましたが、
今回のリリースで、それぞれの役割をswitch
と restore
に持たせる形になります。
というわけで、実際に新しく導入されたこれらのコマンドをいじってみました。
Gitのアップデート
一応Windows向けにGitのアップデート方法を載せておきますので、不要な方は飛ばしてください。
アップデートといっても単純で、下記のようにgit update-git-for-windows
と入力し、y
を押すだけです。
$ git update-git-for-windows
Git for Windows 2.18.0.windows.1 (64bit)
Update 2.23.0.windows.1 is available
Download and install Git for Windows 2.23.0 [N/y]? y
少し待つと、初回にインストールしたときと同様にウィンドウが開くので、インストール作業を進めていけば完了です。
git version
と叩き、下記のように2.23となっていれば、準備完了です。
$ git version
git version 2.23.0.windows.1
switchコマンド
さて、本題の新コマンドです。
まず、新しくローカルにブランチを作成する際には今までですとgit checkout -b hogehoge
としていました。
これを新コマンドを用いるとこのようになります。
$ git switch -c hogehoge
checkoutがswitchに変わり、-bが-cに変わります。
ちなみに-cは--createの略です。
また、作業するブランチを切り替える時ですが、
今までgit checkout master
としていましたが
$ git switch master
とすれば切り替えることができます。
restoreコマンド
今まで自分はローカルで行ったコミット前の修正を取り消す際に、git checkout .
や git checkout hogehoge
といった形でcheckoutコマンドを使用してきました。
予想がついているとは思いますが、これらをrestoreコマンドで行うと、下記のようになります。
$ git restore .
$ git restore hogehoge
こちらも単純にcheckoutをrestoreに置き換えるだけです。
おわりに
自分が最初にcheckoutコマンドに出会った際は、上述したように複数の使い方があるコマンドであり、わかりにくいと感じましたし、checkoutという単語のイメージも今でもあまりピンときていません。(もしかして私だけ...?)
それに対して今回の新コマンドは直観的でわかりやすくなったように感じています。
なんども書いていますがこれらのコマンドは試験的に導入とのことなので、今後どうなるかに注目していきたいと思います。
なお、バージョン2.23では今までどおりcheckoutコマンドを用いることも可能ですので、気軽にGitをアップデートし、本番では今までどおりcheckoutを用い、遊びで新コマンドに触れてみるということも可能です。
今回記事においては基礎的な動作しか試していませんが、その他細かい仕様が記載されているドキュメントを参考文献として載せておきますので、他の操作が気になる方はぜひ試しに触れてみてください。
最後までお読みいただきありがとうございました。
参考文献
リリース内容の概要(日本語)
https://mag.osdn.jp/19/08/19/183000
リリース内容のもう少し詳しい概要(英語)
https://github.blog/2019-08-16-highlights-from-git-2-23/
switchコマンドのドキュメント
https://git-scm.com/docs/git-switch/2.23.0
restoreコマンドのドキュメント
https://git-scm.com/docs/git-restore/2.23.0