スプーキーズのちょっとTech。

SPOOKIES社内のより技工的な、専門的なブログページです。

gitのcheckoutがswitchとrestoreに分離しました

こんにちは tanakaです。

みなさん当然のことながらgitは使っていると思います。

その最新バージョンである2.23より git switchgit restore の2コマンドが追加されました!

f:id:spookies-tanaka:20191002170237p:plain
(出典: https://github.blog/2019-08-16-highlights-from-git-2-23/)

github.blog

これは

Experimental alternatives for git checkout

と記載されている通り、 git checkout の2つの機能を分離したものになります。

(実験的な追加らしいのでコマンドが変更になる可能性もあるのでご注意を)

①switch

これはbranchを切り替える機能です。 git checkout の「branch名を渡すとそのbranchに切り替える機能」に対応しています。

1つ注意するところとしてはbranch作成も同時に行う場合は git checkout -b branch_name upstream_name としていましたが、 そのオプションが git switch -c branch_name upstream_name と変わったところです。

git-scm.com

②restore

これはファイルの変更を戻す機能です。 git checkout の「ファイル名やディレクトリ名を渡すとそこに含まれるファイルの変更を戻す機能」に対応しています。

よく使う --ours--theirs も使えるみたいです。

git-scm.com

以上が簡単な紹介ですが、私はこれを本当に望んでいたんですよね。 だって同じコマンドなのに渡せる値にbranch名とファイル名の2種類があるなんて 関数の引数に渡せる型が2種類あるようなものじゃないですか。 死ぬほど気持ち悪くないですか???

というわけで、みなさんもこれからは switchrestore を積極的に使っていきましょう。