[Git] Cannot check out from unborn branch 해결

톰톰·2023년 2월 2일
0

1. 원인

팀원과 동일한 파일 수정하여 git pull 시 conflict 발생

conflict 해결과정에서 실수로 과거 커밋번호로 Check Out

이후 pull 시도하자 Cannot check out from unborn branch 오류가 출력



2. 해결방법

이클립스 내에서 조작하기 복잡할 것 같아서 git Bash를 사용했다.

a. git status로 상세 내역 확인

HEAD detached at commit번호라는 내용이 표시되었다.

Detached HEAD란?

  • HEAD가 특정 branch가 아닌 특정 commit을 직접 참조하고 있는 상태
  • Detached HEAD 상태에서 새롭게 생성된 commit은 참조하는 branch가 없다. 따라서 다른 branch로 checkout 하게 되면 해당 commit은 가비지 콜렉터에 의해 삭제된다.
  • Detached HEAD 상태에서 생성한 commit을 유지하려면 새로운 branch나 tag를 만들어 해당 commit을 참조하게 만들면 된다.
    • $ git checkout -b branch001
  • 보통 해당 repo에서 기록을 남기지 않고 시뮬레이션 하고 싶을 때 detached 상태를 이용하지만, git에서 지양하는 상태다. test branch를 만들어 사용하는 것이 좋다.

b. git branch로 현재 branch 확인

이클립스에서 최근 commit으로 잘못 checkout을 하는 바람에, HEAD가 정상적으로 있어야 할 branch(master)가 아닌 특정 commit에 있었다.
따라서 정상적이지 않은 branch에서 pull을 시도하니 unborn branch 오류가 출력된 것이었다.

c. branch 이동

다시 master로 checkout하여 master branch로 이동하였다.

d. 다시 pull 시도

다시 원래 출력되던 conflict 상태로 돌아왔다.

conflict 해결 방법은 [Git] Eclipse IDE에서 conflict 해결 글을 참고하시길



References

0개의 댓글