Git
The `git checkout` command is used to switch the working directory to the specified branch or commit, or to retrieve specific files from a particular commit.
git checkout
git checkoutコマンドは、Gitで様々な用途に使われる強力なコマンドです。
基本的な用途
- ブランチの切り替え
-
Git Bash
git checkout ブランチ名
- これは、指定したブランチに作業ディレクトリを切り替えるコマンドです。例えば、mainブランチから feature-branchブランチに切り替える場合、以下のように実行します。
-
Git Bash
git checkout feature-branch
- 新しいブランチの作成と切り替え
-
Git Bash
git checkout -b 新しいブランチ名
- これは、新しいブランチを作成し、同時にそのブランチに切り替えるコマンドです。例えば、feature-branchという新しいブランチを作成し、それに切り替える場合、以下のように実行します。
-
Git Bash
git checkout -b feature-branch
- 特定のコミットやファイルのチェックアウト
-
- 特定のコミットに切り替える
-
Git Bash
git checkout コミットハッシュ
- これは、指定したコミットハッシュの状態に作業ディレクトリを切り替えます。ただし、この場合、デタッチドHEAD(detached HEAD)状態になるため、その状態で新しいコミットを作成しても、現在のブランチには反映されません。
- 特定のファイルを特定のコミットからチェックアウトする
-
Git Bash
git checkout コミットハッシュ -- ファイルパス
- これは、指定したコミットから特定のファイルを現在の作業ディレクトリにチェックアウトするコマンドです。例えば、以前のコミットから file.txtを取り出す場合、以下のように実行します。
-
Git Bash
git checkout 123abc -- file.txt
注意点
- デタッチドHEAD状態
- git checkoutで特定のコミットに切り替えると、デタッチドHEAD状態になります。この状態では新しいブランチを作成せずにコミットを続けると、その履歴が保持されない可能性があります。新しい作業を開始する場合は、新しいブランチを作成することをお勧めします。
-
Git Bash
git checkout コミットハッシュ # 作業後、新しいブランチを作成 git checkout -b 新しいブランチ名
- ファイルの変更がある場合のチェックアウト
- 作業ディレクトリに未コミットの変更がある場合、git checkoutが失敗することがあります。この場合、変更をコミットするか、git stashで一時的に保存する必要があります。
-
Git Bash
git stash git checkout ブランチ名
git switchコマンドとの違い
Gitのバージョン2.23以降では、git switchコマンドが導入され、ブランチの切り替え専用のコマンドとして推奨されています。git checkoutのブランチ切り替え機能は複数の用途を持つため、混乱を避けるためにブランチの切り替えには git switchが利用されます。
Git Bash
git switch ブランチ名
git switch -c 新しいブランチ名
これらのコマンドを使い分けることで、Gitでの作業がより効率的に行えるようになります。