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