티스토리 뷰
Learn/Git
[Git] Warning: you are leaving 1 commit behind, not connected to any of your branches 에러 문구 발생시 해결방안
앤오엔 2022. 5. 28. 15:58상황 및 문제
Git 터미널에 commit 와 push 가 제대로 진행되지 않고 아래와 같은 문구가 나타남
Warning: you are leaving 1 commit behind, not connected to any of your branches: (후략)
(해석 및 요약)
현재 'detached HEAD' 에 있으며, 브랜치에 영향을 미치지 않는 실험적인 변경과 커밋을 할 수 있다.
만약 커밋 내역을 유지하고 싶으면 새로운 브랜치를 만들어 -c를 이용해 switch 명령어를 사용하면 된다.
※ git switch -c 새로운브랜치 명령어를 입력했음에도 이슈는 해결되지 않음
원인
detached HEAD 는 브랜치에 연결되지 않고 애매하게 붕 떠있는 상태
작업을 하고 커밋을 해도 브랜치가 없으니 누적할 수도 없음. (다만 커밋 해시 값을 알고 있으면 접근 가능)
브랜치에 붙어 있지 않은 커밋을 만들었고, 따라서 리모트 브랜치에도 push 가 당연하게 되지 않음
해결
1. 임시 브랜치 생성하여 커밋 붙이기
# 1) 임시브랜치를 생성하고 체크아웃한다.
git checkout -b 임시브랜치명
# 2) 병합할 브랜치로 이동한다.
git checkout 병합할브랜치명
# 3) 임시 브랜치를 병합브랜치에 머지한다.
git merge 임시브랜치명
# 4) 사용하지 않는 임시 브랜치를 삭제한다.
git branch -d (또는 -D) 임시브랜치명
2. 기존 브랜치에 커밋 붙이기 (실제로 해결한 방법)
# 1) 둥둥 떠다니는 커밋의 id를 확인
git reflog
# 2) 기존 브랜치로 이동
git checkout 기존브랜치
# 3) 떠다니던 커밋을 기존브랜치에 붙이기
git cherry-pick 커밋id
참고
git detached Head의 뜻과 복구하는 법 : Git Detached Head: What This Means and How to Recover - CloudBees Tech Stack (stackshare.io)
detached HEAD 관련 글: https://www.devhak.com/blog/git-detached-head
'Learn > Git' 카테고리의 다른 글
[Git] GitLab 에서 Template 설정하기 - Issue, MR Template (0) | 2022.06.03 |
---|---|
[Git] Git Merge / Squash / Rebase 구분 (0) | 2022.04.13 |
[Git] GitLab 에서 pre-receive hook declined 오류 발생 시 해결방안 (0) | 2022.03.18 |
댓글