はじめに
こんにちは、H×Hのセンリツ大好きエンジニアです。(同担OKです😉)
「新しいブランチを作成し、現在のブランチを新しいブランチに切り替える」という動作を行いたい場合、git checkout -b <new branch>
とgit switch -c <new branch>
があると思います。
。。。これってどう使い分ければいいの?って思ったので調べました🤔
git checkoutとは
ブランチの切り替えもありますが、ブランチの切り替え以外にも多くの用途があるコマンドです。
- ブランチの切り替え
git checkout <branch name>
- コミットやタグの切り替え
git checkout <commit-hash> or <tag>
- ファイルの復元
git checkout -- <file>
大体こんなもんかなと思います。
checkoutって言っても、何をするのか具体的な挙動って想像しにくいですよね😮💨
それと同じ話が挙がった故に、後述するgit switch
と作業ディレクトリの変更を元に戻すためのコマンドであるgit restore
が誕生しました!
git switch
git switch
コマンドは、ブランチの切り替えに特化したコマンドです。
git checkout
のブランチ切り替え機能を簡潔にしたものになります。
用途としては、先ほど冒頭で出したようなブランチの切り替えメインです。
- ブランチの切り替え
git switch <branch name>
これのみです。🫣
出来ることがシンプルなので、分かりやすいですね!
使い分け
「ブランチの切り替え」を行う時にはもうgit switch
でいいんじゃないかなと思います!👍
その方が意図が分かりやすいので。
それ以外、例えば「特定のコミットの状態に戻す」や「ファイルを復元する」と言った処理ではgit switch
は使えませんので、git checkout
になるかな〜と。
ただ、状態を戻すという処理はgit restore
というコマンドで行えるので実際の所git checkout
は多用すべきでは無い気がしています。
これからは、git switch と git restore を使おう!
おわりに
普段何気なく使っていた両者の違いについて触れてみました。
git checkout
のように、色々なことが出来てしまうとミスが起こりやすいので、なるべくは決められた動作しか出来ないものを使った方が安全ですね😎
最後までご覧いただきありがとうございました!
以上、センリツでした。🤓