HwangHub
[트러블슈팅] fatal : refusing to merge unrelated histories 본문
workspace/backend
[트러블슈팅] fatal : refusing to merge unrelated histories
HwangJerry 2023. 11. 7. 19:57프로젝트 팀의 FE 레포를 분리하여 관리했었는데, 이번에 프론트엔드 코드를 확인할 일이 있어서 레포에서 pull을 받으려고 했다가 마주한 에러이다.
진행했던 시나리오는 다음과 같다.
git init
git remote add origin <origin_url>
git branch -m main
git pull origin main
git switch -c dev
git pull origin dev
main으로부터 dev가 분기했을 것이고, dev는 main보다 더 많은 커밋이 쌓여있는 상황이었기에 dev와 main의 커밋 히스토리 중 main이 당연히 더 뒤에 있을 것이라 판단하였다.
하지만 추측컨데, 그러지 않았던 것 같다.
git pull origin dev를 수행하는 순간, fatal : refusing to merge unrelated histories 라는 에러를 마주하였다. 딱 봐도, 히스토리가 다르기 때문에 git에서 이 두 log를 하나로 merge 할 수 없다고 하는 것으로 보였다.
하지만 이는 내가 원하는 결과가 아니였으며, main에 최신 코드가 하나도 없었고, dev 브랜치에 있는 코드가 기준이 되고 있었기에 origin/dev를 강제로 pull할 수 있는 방법을 알아보았다.
방법은 다음과 같이 --allow-unrelated-histories 옵션을 넣어서 pull하는 것이다.
git pull origin <branches> --allow-unrelated-histories
위 명령어를 사용하면 origin/dev와 local/dev 브랜치의 근간 커밋 기록이 다르더라도 이를 무시하고 pull받을 수 있다.
결론
브랜치 간 history 관리의 중요성을 깨닫게 되는 순간이었다. 이렇게 강제 merge 과정이 반복되면 git을 이용하여 버전관리를 용이하게 할 수 없게 되니 주의해야 할 것이다.
'workspace > backend' 카테고리의 다른 글
[JPA] 비밀번호 정규표현식 적용 및 비밀번호 수정 구현 (1) | 2023.11.13 |
---|---|
[쿠버네티스] 쿠버네티스를 사용하는 이유? (가볍게) (2) | 2023.11.12 |
Java Swing, JDBC를 활용한 데이터베이스 관리 프로그램 (0) | 2023.11.07 |
[트러블슈팅] InvalidDataAccessResourceUsageException : expected "identifier"; (0) | 2023.11.06 |
[JDBC] batch query를 작성해보며 고민해본 '좋은 코드' (0) | 2023.11.04 |
Comments