ブランチ

git checkout

ブランチの切り替えや、特定のコミット時点のファイルを復元します。現代的な操作には git switch / git restore の使用が推奨されています。

構文 git checkout <branch> | git checkout -b <new-branch>

オプション

フラグ 説明
-b <branch> 新しいブランチを作成して切り替えます。git branch + git checkout を一度に行います。
-B <branch> ブランチが存在する場合はリセット、存在しない場合は作成して切り替えます。
--orphan <branch> 親コミットを持たない孤立したブランチを作成します。gh-pages などに使います。
-- <file> 指定したファイルを HEAD(最後のコミット)の状態に戻します。

git checkout は複数の機能を持つコマンドです。主に「ブランチの切り替え」と「ファイルの復元」に使います。Git 2.23 以降では、これらの機能が git switch(ブランチ切り替え)と git restore(ファイル復元)に分割されたため、新しいコマンドの使用が推奨されています。

ブランチの切り替え

# 既存のブランチに切り替え
git checkout main
git checkout feature/login

# 新しいブランチを作成して切り替え
git checkout -b feature/new-feature

# リモートブランチに対応するローカルブランチを作成して切り替え
git checkout -b feature/login origin/feature/login

ファイルの復元

# 作業ツリーのファイルを最後のコミット時点に戻す
git checkout -- index.html

# 特定のコミット時点のファイルを取得
git checkout a1b2c3d -- src/config.js

現代的な代替コマンド

Git 2.23 以降ではより明確な代替コマンドが用意されています。

# ブランチ切り替え(git checkout <branch> の代替)
git switch main

# 新規ブランチ作成と切り替え(git checkout -b の代替)
git switch -c feature/new-feature

# ファイルの復元(git checkout -- <file> の代替)
git restore index.html

注意点

  • ブランチを切り替える前に、作業ツリーの変更を git commit または git stash で保存しておかないと、変更が失われる可能性があります。
  • git checkout -- <file> はステージング前の変更を取り消せない形で破棄します。慎重に使ってください。