SCM/Git
[Git & GitHub 7] detached HEAD
ride-dev
2024. 5. 10. 14:41
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