git switch
ブランチを切り替えます。Git 2.23 で追加された新しいコマンドで、git checkout のブランチ切り替え機能を担います。
構文
git switch <branch> git switch は Git 2.23 で追加されたコマンドで、git checkout が担っていた「ブランチの切り替え」機能だけを担当します。用途が明確なため、現在は git switch の使用が推奨されています。
基本的な使い方
# 既存のブランチに切り替え
git switch main
git switch feature/login
# 新しいブランチを作成して切り替え
git switch -c feature/new-feature
# リモートブランチをもとにローカルブランチを作成して切り替え
git switch -c feature/login origin/feature/login
# 直前にいたブランチに戻る
git switch -
git checkout との対応表
| 旧コマンド(git checkout) | 新コマンド(git switch) |
|---|---|
git checkout <branch> | git switch <branch> |
git checkout -b <branch> | git switch -c <branch> |
git checkout -B <branch> | git switch -C <branch> |
git checkout --detach <commit> | git switch --detach <commit> |
注意:
git checkout -- <file>のようなファイル復元はgit switchでは行えません。ファイル復元にはgit restoreを使います。
detached HEAD 状態
# 特定のコミットに切り替える(detached HEAD)
git switch --detach a1b2c3d
# タグのコミットに切り替える
git switch --detach v1.0.0
detached HEAD 状態での変更を保存したい場合は、新しいブランチを作成してください。
git switch -c hotfix/typo
未コミット変更がある場合
ブランチを切り替える前に変更をコミットまたはスタッシュしてください。
# 変更を一時退避してからブランチを切り替え
git stash
git switch feature/other
# 変更を破棄してブランチを切り替え(注意:元に戻せません)
git switch --discard-changes feature/other