git checkout コマンドは、指定したブランチやコミットに作業ディレクトリを切り替えるためのコマンドです。
また、特定のファイルを指定コミットの内容に戻すことも可能です。
構文(Syntax)
git checkout [オプション] <ブランチ名>
git checkout [オプション] <コミットID> [--] <ファイル>
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
<ブランチ名> | 指定ブランチに切り替え | git checkout develop |
-b <新ブランチ名> | 新しいブランチを作成して切り替え | git checkout -b feature-x |
<コミットID> | 特定のコミットに切り替え(detached HEAD 状態) | git checkout abc1234 |
<コミットID> -- <ファイル> | ファイルを特定コミット時の状態に戻す | git checkout abc1234 -- app.py |
-- | ブランチ名とファイル名の曖昧さを解消 | git checkout -- README.md |
実行例
既存のブランチに切り替え
git checkout develop
新しいブランチを作成して切り替え
git checkout -b feature-login
出力例:
Switched to a new branch 'feature-login'
過去のコミットに切り替え(detached HEAD)
git checkout abc1234
出力例:
Note: switching to 'abc1234'.
You are in 'detached HEAD' state...
特定ファイルを以前の状態に戻す
git checkout abc1234 -- config.yaml
変更を破棄して最新コミットの内容に戻す
git checkout -- app.py
エラー例(存在しないブランチ)
git checkout notfound
出力例:
error: pathspec 'notfound' did not match any file(s) known to git
関連コマンド
git branch: ブランチの作成・一覧・削除を行う。git switch: ブランチ切り替え専用の新コマンド(git checkoutの代替)。git restore: ファイルの復元専用の新コマンド(git checkoutの代替)。
備考
- Git 2.23 以降では、役割を分けるために
git switch(ブランチ切り替え)とgit restore(ファイル復元)が導入されました。 - 過去コミットに切り替えた状態(detached HEAD)は、そのまま作業すると履歴が孤立する可能性があるため注意が必要です。
- 変更を破棄する用途で使う際は、意図せず作業を失わないように注意してください。
参考
- Git公式ドキュメント: https://git-scm.com/docs/git-checkout

コメント