본문 바로가기

Git - detached HEAD 설명 페이지

Git 에서 서브모듈을 쓰다가 보면, 최초에 포함된 submoudule init 하고 update 하면 로컬에 다운된 저장소의 브랜치가 특정 브랜치에 붙어 있지 않는 상태라고 한다.

 

이를 전문 용어로 "detached HEAD" (ㅋㅋ 번역 그대로네...)

라고 한다. 관련된 내용을 아주 잘 설명한 페이지가 있어서 아래에 소개

 

https://www.devhak.com/blog/git-detached-head

 

detached HEAD

서브모듈이 포함되어 있는 프로젝트를 클론하면 명령어를 사용하게 되는데, 이때 서브모듈의 브랜치를 확인하면 형태인 것을 확인 할 수 있다. 분리되었다뇨... 브랜치랑 다른 뭔가 무서운(?)상

www.devhak.com

 

결국 브랜치가 없는 상태에서 수정 삭제를 해서 commit 을 하면 commit 작업 자체는 아무런 문제 없이 된다고 한다. 그럼 나중에 실제 존재하는 branch를 checkout 해서 사용하게 될 때는 이전에 commit 한 작업들의 적용이 되지 않는다.

 

이땐 둥둥 떠다니는 고스트같은 commit 들을 merging 하면 될 듯 한데, 이방법만 참고용으로 간단히 여기 다시 복사해서 가져다 둔다.

기존 브랜치에 커밋 붙이기
1. git reflog로 둥둥 떠다니는 커밋의 id를 확인
2. git checkout 기존브랜치 기존 브랜치로 이동
3. git cherry-pick 커밋id 떠다니던 커밋 기존브랜치에 붙이기

BJ.

훌쩍 떠나는 여행...브랜치와 분리되어 따로 ㅋㅋㅋ

Genine Alyssa Pedreno-Andrada 님의 사진, 출처: Pexels

Comments