はじめに
gitコマンドでブランチを切り替える時、僕はgit switchを使うのですが、最近git checkoutでもブランチを切り替えることができると知って、どういうふうに使い分ければいいのか疑問に思ったので調べてまとめてみました。
checkout restore switch
git checkout, restore, switchコマンドができた経緯としては、git checkoutコマンドの機能が多いことにより、git restore,git switchに機能を分けるという経緯から生まれました。
では細かい機能について見ていきます。
git switch
ブランチを切り替えるためのコマンドです。
既存のブランチに切り替える場合
git switch <branch>
新しいブランチを作成し、かつ切り替える場合
git switch -c <branch>
同じ名前のブランチがある場合に、上書きして切り替える場合
git switch -C <branch>
git restore
ファイルを元に戻すためのコマンドです。
ファイルの内容を変更したが、addまではしていない場合
git restore <file>
ファイルの内容を変更し、addはしたが、commitはしていない場合
git restore --staged <file>
git restore <file>
一つ目のコマンドで、ファイルをステージング前の状態に戻し、
二つ目のコマンドで、ファイルを変更前の状態に戻します
git checkout
ブランチを切り替える、ファイルを元に戻す、過去のファイルの状態を復元するという3つの機能があります。
既存のブランチに切り替える場合
git checkout <branch>
新しいブランチを作成し、かつ切り替える場合
git checkout -b <branch>
コミットとファイルのパスを指定し、特定のファイルを復元する
git checkout <commit> <file>
addしていない変更をとり消す
git checkout <file>
最後に
checkoutにこんなにも色々な機能があるなんて驚きました。確かにこんなに機能があるなら、switchとrestoreに分けられた方が、使いやすいなと思います。
結局ブランチを変更する際には、checkoutとswitchのどちらでも良さそうです。