내가 자주 보는 에러 중 하나.
처음에 브랜치 하나 만들면 master나 main 브랜치에 pull request가 안되는 일이 종종 있었다.
찾아보고 나니 저장소에 저장된 처음 초기상황(?)이 달라서 푸쉬가 되지 않았던 것.
맞지 않기 때문에 다시 pull해서 합쳐주면 되지
라고 생각하지만 병합 거부
합치고 다시 받아야 하나? 안됨.
페치는? 당연히 안됨.
fetch?
원격 저장소에 있는 내용을 가져오지만 자동으로 내 로컬 저장소에 merge 하지 않는다.
원격 저장소의 내용을 확인만 하고 로컬에 merge하고 싶지 않을 때 사용.
HEAD에는 가장 마지막에 행해진 commit 정보가 담긴다.
FETCH_HEAD : 원격 저장소의 가장 최신 commit 이력이 담기게 된다.
이름 없는 브랜치로 로컬에 가져오게 되서, 이 브랜치로 checkout도 가능하다.
pull?
fetch + merge 작업을 한 번에 처리하는 명령어
원격 저장소에 있는 내용을 가져올 뿐만 아니라, 자동으로 로컬 저장소에 merge
즉, git pull 명령어는 git fetch + merge FETCH_HEAD인 셈.
git pull --allow-unrelated-histories
총 정리하자면 고통된 커밋 포인트가 없어서 안된 것.
해결 방법은 2가지
1. git clone 명령어를 통해 원격 저장소 복제
2. pull 명령어에 옵션을 추가해 강제 pull (위의 명령어)
*참고 사이트
https://jobc.tistory.com/177