MeWrite Docs

You are in 'detached HEAD' state

GitでdetachedHEAD状態になった場合の対処法

概要

detached HEAD は、特定のコミットを直接チェックアウトした状態を指します。ブランチではなくコミットを指しているため、新しいコミットが孤立する可能性があります。

エラーメッセージ

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

原因

1. 特定のコミットをチェックアウト

1
git checkout abc1234

2. タグをチェックアウト

1
git checkout v1.0.0

3. リモートブランチを直接チェックアウト

1
git checkout origin/main

解決策

1. ブランチに戻る

1
2
3
4
5
# 既存のブランチに戻る
git checkout main

# または
git switch main

2. 新しいブランチを作成

1
2
3
4
5
# 現在の状態から新しいブランチを作成
git checkout -b new-branch-name

# または
git switch -c new-branch-name

3. detached HEAD状態でコミットした場合

1
2
3
4
5
6
7
8
9
# 現在のコミットIDを確認
git log --oneline -1

# 新しいブランチを作成して保存
git checkout -b save-my-work

# または、既存のブランチにマージ
git checkout main
git merge abc1234  # detached HEAD時のコミットID

4. 変更を破棄して戻る

1
2
3
4
5
# 変更を破棄
git checkout -- .

# ブランチに戻る
git checkout main

detached HEADの活用

過去のコードを確認

1
2
3
4
5
6
# 特定のコミットの状態を確認
git checkout abc1234
# コードを確認
cat file.txt
# 元に戻る
git checkout main

実験的な変更

1
2
3
4
5
# 安全に実験
git checkout abc1234
# 変更を試す
# 気に入ったら新しいブランチを作成
git checkout -b experiment

状態の確認

1
2
3
4
5
6
# HEAD状態を確認
git status

# HEADが何を指しているか
git rev-parse HEAD
git symbolic-ref HEAD  # detached時はエラー

関連エラー

関連エラー

Git の他のエラー

最終更新: 2025-12-17