Git

[Git] push 문제 detached HEAD 해결

sueeee-e 2024. 11. 1. 17:38

git-flow 브랜치로 관리하려다가 커밋 내용이 다 날라갈 뻔한 내용

 

git 원격에서 브랜치를 만들었다고 터미널에서 로컬에도 만들어진 줄 알고 이미 커밋은 됐는데 푸시가 안된 그런 상황 

그것도 모르고 막ㄱ 뭐 하다가 보니까 파일에 커밋해야 할 내용들이 다 사라진 .. 그런 상황입니다.. 울 뻔함

 

그래서 일단 reflog로 상황을 살펴보고

git reflog

내가 커밋하려고 햇던 커밋 해쉬를 알아냅니다. 

git checkout 12312d

알아낸 해쉬로 체크아웃을 해서 저 커밋으로 돌아갑니다.

그럼 내가 커밋하고 싶었던 내용들이 다시 살아나는 것을 알 수 있는데 

 

여기서 지금 현재 상태는 detached HEAD로 브랜치가 아닌 커밋을 직접 보고 있는 것입니다. 이 상태에서 커밋을 해도 아무 소용없다는 그런 상태인거죠 그러니 push 할 거도 없습니다..,

 

해결 방법 

 

1. 임시 브랜치를 만든다. 

git branch temp
git checkout temp

 

2. 강제로 main 브랜치를 temp 브랜치의 가장 최신 커밋으로 이동 -> main 대신 원하는 브랜치로 해도 될 듯

git branch -f main temp
git checkout main

 

3. 임시 브랜치 삭제

git branch -d temp

 

4. 푸시

git push

 

이 방법으로 해결했습니당./

 

 


참고

https://velog.io/@heylub/Git-detached-HEAD-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95