1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git】checkout / switch の使い分け

1
Posted at

はじめに

Git を使っていると、ブランチを切り替えるときに git checkoutgit switch のどちらを使えばいいのか迷うことがあります。両方とも動くのですが、なぜ2つあるのか、どう使い分ければいいのかを整理しておきたいと思います。

なぜ checkout と switch の2つがあるのか

git checkout はもともと1つのコマンドで複数の役割を担っていました。

  • ブランチを切り替える
  • ファイルの変更を破棄して元に戻す
  • 特定のコミットを見に行く(detached HEAD)

「ブランチの操作」と「ファイルの操作」という性質の違う仕事が1つのコマンドに同居していて、特に Git を触り始めた人には分かりにくい状態でした。

そこで Git 2.23(2019年)で、この責務を2つに分けたコマンドが導入されました。

switch はブランチの切り替え、restore はファイルの復元を担当します。名前を見ればどちらの操作か分かるので、意図が明確になります。

checkout と switch / restore の対応表

普段よく使う操作の対応関係は以下のとおりです。

やりたいこと 旧(checkout) 新(switch / restore)
ブランチを切り替える git checkout main git switch main
ブランチを新規作成して切り替える git checkout -b feature git switch -c feature
直前にいたブランチに戻る git checkout - git switch -
ファイルの変更を破棄する git checkout -- file.txt git restore file.txt
特定コミットを見る(detached HEAD) git checkout <commit> git switch --detach <commit>

新規ブランチ作成のフラグが -b から -c(create)に変わっている点だけ注意が必要です。

使い分けの考え方

switch / restore

役割が名前から分かるので、コマンドの意図が読み取りやすくなります。特に効いてくるのがファイルの破棄です。

# ❌ Before: ブランチ切り替えと同じコマンドなので事故りやすい
git checkout -- file.txt

# ✅ After: 「復元」だと名前で分かる
git restore file.txt

git checkout -- file.txt は変更を破棄する破壊的な操作ですが、ブランチ切り替えと同じ checkout なので、-- を忘れるなどしたときに意図しない挙動になりやすい部分でした。restore に分かれていることで、何をする操作なのかがはっきりします。

また git switch はデフォルトでは detached HEAD にならないので、ブランチ名のつもりでコミットを指定してしまう事故も起きにくくなっています。

checkout

git switch / git restore が導入されても、git checkout は非推奨(deprecated)にはなっていません。今も普通に使えますし、既存の資料やチームの手順書、他の人のコマンド履歴では checkout がまだ多く使われています。自分で新しく書くときは switch / restore、読むときは両方分かる、という状態にしておくと安心です。

git switchgit restore は導入当初 experimental(実験的)扱いでしたが、Git 2.51(2025年8月)で experimental ラベルが外れ、正式に安定したコマンドになりました。インターフェースが将来にわたって互換性を保つことが保証されたので、安心して使えます。

まとめ

この記事では git checkoutgit switch の違いと使い分けをまとめました。

  • git checkout は「ブランチ操作」と「ファイル操作」を1つで担っていて分かりにくかった
  • Git 2.23 でその責務を git switch(ブランチ)と git restore(ファイル)に分割した

参考

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?