bit가 눈 앞에서 왔다갔다

commit 오류(push 불가) 해결법 본문

OSS/Github

commit 오류(push 불가) 해결법

헬린인형 2019. 12. 16. 00:35

master에 commit을 하려고 했는데 오류가 떴다.

rejected!

내 현재 branch가 원격 counterpart의 뒤에 있다며 push 전에 pull을 하라는데

counterpart가 뭔지도 모르겠고, 뒤에 있다는 말이 뭔 말인지도 모르겠다.

이대로 pull을 하면 이런 경고문이 떴다.

fatal : refusing to merge unrelated histories

나는 같은 원격 rep를 pull 해서 커밋하려고 하는데 unrelated histories라고.. ._.

????


일단 첫 번째 사진의 오류부터 하나하나 분석해보았다!

더보기

*용어 정리

fetch - 원격의 내용을 가져옴 (내 로컬에 merge하진 않음) : 원격 내용 확인하고 merge하지 않을 때 사용

HEAD - 최종적인 commit 정보

FETCH_HEAD - 최종적인 commit 정보 : 이름 없는 브랜치로 로컬에 가져옴, FETCH_HEAD로 checkout이 가능한 브랜치

 

1.! [rejected] master -> master (non-fast-forward)

로컬 저장소 master 브랜치의 변경사항을 원격의 master에 반영하려고 했는데, 원격 저장소의 master 브랜치가 로컬 저장소의 버전보다 이전 버전이 아니다.(non-fast-forward)

아마 원격에 반영된 것을 로컬에 반영하지 않아서 이렇게 된 게 아닐까 싶다.

근데 아무것도 건드리지 않았었던 것 같은데? 기억을 못 하는 건가..

이 부분은 동일한 문제가 발생했을 때를 기다려서 다시 알아보는 걸로,,

 

push 명령은 로컬의 commit 목록과 원격의 commit 목록을 비교한다.

원격의 마지막 commit id와 동일한 commit id를 가진 로컬 저장소의 commit 시점을 찾아서 원격 저장소의 마지막 commit과 연결하는데, 

원격 저장소의 변경사항이 로컬에 반영되지 않았었다면, commit id가 다를 수밖에 없다.

1) fetch와 - git fetch [원격 저장소 이름]

2) pull의 명령어로 해결할 수 있다고 한다. (또는 원격 repo 삭제... ._.)

나는 pull 명령어로 해결을 하고자 했었고,

 

2. fatal : refusing to merge unrelated histories이라는 오류를...

원격 master 브랜치에서 로컬의 FETCH_HEAD를 merge 하는 것이 거부된 것으로, commit 히스토리가 서로 관련이 없음을 의미한다.

<해당 오류의 의미 : 연관성이 없어서 merge가 불가능함>

pull은 git fetch + merge FETCH_HEAD를 한 번에 처리하는데, (자동으로 로컬에 pull) 현 상황은 fetch는 되었지만 merge는 되지 않은 상태이다.

merge는 원격과 로컬이 공통으로 가지고 있는 commit 지점이 존재해야 가능하다.

 

해결법엔 1) git clone으로 원격 저장소를 복제하는 것과, - git clone [git 주소]

2) 옵션을 추가해 강제로 pull 하는 것이 있다. - git pull origin master [브랜치명] --allow-unrelated-histories

--allow-unrelated-histories는 서로 관련된 기록이 없는 이질적인 프로젝트의 병합이 거부될때 허용해주는 명령이다.

 

 

*참고

https://jobc.tistory.com/177

https://gdtbgl93.tistory.com/63

반응형

'OSS > Github' 카테고리의 다른 글

commit 취소 후 다시 하기  (0) 2021.12.04
git add 취소 하는 법  (0) 2021.10.03
commit 내용 수정  (0) 2019.12.16
merge 오류 (Branch가 merge되지 않을 때) 해결법  (0) 2019.12.16
Git, Github 사용법  (2) 2019.11.04
Comments