깃랩을 사용하던 중, 어느 부분의 실수에서였는지 내가 branch에서 떨어졌다는 오류가 떴다.
찾아보던 중, 아주 정리를 잘해주신 블로그가 있어 참고하여 내 상황을 정리해 보겠다.
https://devcamus.tistory.com/6
detached head가 무엇일까?
→ head가 branch로부터 떨어졌다는 소리로, branch를 통해서가 아닌 직접적으로 commit을 참조하는 상태이다.
git 에서 head는 단 하나만 존재하며, 시작점과 같다. 일반적으로는 git에서 head → branch → commit의 순서가 된다. 그런데 여기서 나는 check out을 해버려서 git이 branch를 잃어버린 거고, detached head가 되었던 것이다.
이 상태에서 계속해서 commit & push를 한다면?
→ reject
순서 돌아보기
1. head는 main(master)를 통해 revision number의 commit을 참조
- 여기서 revision number는 git의 본인 커밋 메시지에 우측버튼을 클릭하면 보인다.
2. 첫 번째 커밋에서 checkout하여 detached head 상태
3-1. 아몰랑 ~ 하고 commit을 한다면 → 세 번째 commit이 생기고 거기에 head가 붙게 될 것
다음 명령어를 이용하여 main(master) branch를 참조하게 하면 된다.
git checkout main(master)
3-2. 이상함을 감지하고 원상복구 후 다음과 같이 두 번째 commit에서 head를 떼어냈을 때 push 했더니 reject 당하고.. 내가 한 commit이 안 보인다..
아래를 이용하여 main(master) branch를 세 번째 커밋을 참조하게 하여
git branch -f main(matser) HEAD
head가 main(master) branch를 참조하게끔 branch로 checkout 하면 끝!
git checkout main(master)
'개발환경 > Git' 카테고리의 다른 글
[Git] main branch merge commit 오류 (미해결) (1) | 2024.02.28 |
---|---|
[Gitlab] Gitlab 사용하기 (2) | 2023.11.16 |
[Github] vscode Github 파일 업데이트 방법 (0) | 2022.07.22 |
[Github] VScode에서 Github 업로드 하기 (0) | 2022.07.15 |