본문 바로가기
Git/문제 해결

[Git] Detached HEAD 해결

by 카피마스터 2024. 5. 2.

HEAD는 체크아웃된 브랜치커밋을 가리키는 포인터

일반적으로 HEAD는 브랜치를 가리켜야 하지만 커밋을 가리키고 있는경우를  Detached HEAD 상태라고 한다

 

Detached HEAD 상태인 경우 연결된 브랜치가 없기 때문에 작업을 하고 커밋 후 다른 브랜치로 체크아웃하는경우

해당 커밋은 사라질수 있다.

 

커밋된 내용이 없는경우 그냥 체크아웃

git checkout main

 

커밋된 내용이 있는 경우

1. 임시 브랜치 생성 후 체크아웃

git branch temp

git checkout temp

 

2. 메인 브랜치의 커밋을 temp로 이동. 이후 체크아웃하고 푸쉬

git branch -f main temp

git checkout main

git push

 

3. 임시 브랜치는 제거

git branch -d temp