2
2

git switchとgit checkoutって何が違うの?

Posted at

はじめに

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のどちらでも良さそうです。

2
2
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
  3. You can use dark theme
What you can do with signing up
2
2