3歩進んで2歩下がる

Software Engineer

git checkout の代わりに git switch / git restore を使う

これまで git checkout を使っていたのですが、職場で git switch / git restore について会話する機会があり、遅ればせながら乗り換えようかなと思いました。

※ docs に THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE. と書かれているため、将来的に変わる可能性があります。

git switch / git restore の概要

git checkout のdocsSwitch branches or restore working tree files と書かれている通り、これまで git checkout が担っていた役割は switch(切り替え)restore(復元) に分割されます。このそれぞれの役割を担うのが git switchgit restore です。

git switch

git switch はブランチの切り替えに利用します。

// 切り替え
$ git checkout feature/xxx
// 新しいブランチを作成して切り替え
$ git checkout -b feature/xxx

と書いていたのが

// 切り替え
$ git switch feature/xxx
// 新しいブランチを作成して切り替え
$ git switch -c feature/xxx

となります。

git restore

git restore はワーキングツリーの復元に利用します。

// ワークツリーの変更を取り消す
$ git checkout HEAD .
// 特定のコミットに戻す
$ git checkout commit_hash

と書いていたのが

// ワークツリーの変更を取り消す
$ git restore
// 特定のコミットに戻す
git restore --source commit_hash

となります。

最後に

blog.inductor.me この方が書かれている表が分かりやすかったです。

正直 restore系のコマンドはあんまり使ったことがなかったのですが、これを機に使っていこうと思います。では、良い git life を。