git checkout – ブランチやコミットを切り替えるコマンド

リポジトリ管理

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)は、そのまま作業すると履歴が孤立する可能性があるため注意が必要です。
  • 変更を破棄する用途で使う際は、意図せず作業を失わないように注意してください。

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント