Notice
Recent Posts
Recent Comments
Link
HwangHub
[트러블슈팅] fatal : refusing to merge unrelated histories 본문
프로젝트 팀의 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 > 아티클' 카테고리의 다른 글
[JPA] 비밀번호 정규표현식 적용 및 비밀번호 수정 구현 (1) | 2023.11.13 |
---|---|
[쿠버네티스] 쿠버네티스를 사용하는 이유? (가볍게) (2) | 2023.11.12 |
[JIRA] 지라/슬랙/깃허브 연동을 통한 프로젝트 관리 시작하기 (0) | 2023.11.07 |
Java Swing, JDBC를 활용한 데이터베이스 관리 프로그램 (0) | 2023.11.07 |
[트러블슈팅] InvalidDataAccessResourceUsageException : expected "identifier"; (0) | 2023.11.06 |
Comments