git - HEAD
HEAD는 현재 체크아웃된 커밋을 가리킵니다. 즉 현재 작업중인 커밋입니다.
HEAD는 항상 작업트리의 가장 최근 커밋을 가리킵니다. 작업트리에 변화를 주는 git 명령어들은 대부분 HEAD를 변경하는것으로 시작합니다.
일반적으로 HEAD는 브랜치의 이름을 가리킵니다.
git - HEAD 예제
$ git checkout C1;
HEAD가 드러납니다.
$ git checkout master; git commit;
커밋을 하면 master브랜치와 HEAD가 새로운 커밋을 가르키고 브랜치 안에 숨겨져 있습니다.
$ git checkout C2;
HEAD로 체크아웃합니다.
이렇게 HEAD가 브랜치아래에 숨어 있던겁니다.
HEAD를 분리한다는 것은 HEAD를 브랜치 대신 커밋에 붙이는 것을 의미합니다.
명령을 사용하기 전의 모습은 다음과 같습니다.
HEAD -> master -> C1
명령을 사용하면
HEAD -> C1
로 변하게 됩니다.