search
LoginSignup
171

More than 1 year has passed since last update.

posted at

updated at

【Git】あなたが知らない新コマンドswitch/restoreの世界にご招待

はじめに

先日Gitのバージョン2.23がリリースされました。
そして、そのリリースの中で試験的に新コマンド switchrestore が導入されることが発表されました。

導入の背景として、checkout コマンドを分離することで、よりわかりやすくする狙いがあるようです。

御存じのとおり、これまでcheckoutには「ブランチの切り替え作業」と「作業ツリーのファイルの復元」の2つの役割がありましたが、
今回のリリースで、それぞれの役割をswitchrestoreに持たせる形になります。

というわけで、実際に新しく導入されたこれらのコマンドをいじってみました。

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

少し待つと、初回にインストールしたときと同様にウィンドウが開くので、インストール作業を進めていけば完了です。

20190824_102458.JPG

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
171