HEAD는 일반적으로 특정 브랜치의 가장 최근 커밋을 가리킵니다.
HEAD는 일반적으로 커밋이 아닌 특정 브랜치를 참조합니다.

detached HEAD
git checkout <commit> 명령어를 통해 HEAD를 특정 커밋 시점으로 이동할 수 있습니다.
git checkout <commit hash>
이 때의 HEAD를 detached HEAD(분리된 헤드)라고 합니다.
일반적으로 .git/HEAD는 branch의 경로를 가리킵니다.
$ cat .git/HEAD
ref: redfs/heads/branch1
그러나 detached HEAD는 커밋을 가리키게됩니다.

git checkout 3f
$ cat .git/HEAD
3f
분리된 헤드를 브랜치로 되돌리고 싶다면,
git switch 또는 git checkout 명령어를 사용하여 브랜치로 이동합니다.
분리된 헤드를 기반으로 branch를 생성할 수도 있습니다.
이 때 생성하는 branch는 detached HEAD 이후의 변경사항이 반영되지 않습니다.

detached HEAD로 checkout 할 때, HEAD를 기준으로 checkout 할 수 있습니다.
git checkout HEAD~n

728x90
반응형
'SCM > Git' 카테고리의 다른 글
| [Git & GitHub 9] GitHub란? git clone, git remote (1) | 2024.05.14 |
|---|---|
| [Git & GitHub 8] Snapshotting(checkout, restore, reset), Patching(revert) (1) | 2024.05.10 |
| [Git & GitHub 6] git stash (0) | 2024.05.10 |
| [Git & GitHub 5] git diff (1) | 2024.05.09 |
| [Git & GitHub 4] git merge, merge commits, resolving merge conflicts (0) | 2024.05.05 |