[GIT] 레포지토리 병합 (refusing to merge unrelated histories)

 

GIT

[아파트너] 프로젝트를 진행 중 모놀리식 아키텍처를 멀티 모듈 아키텍처로 변경하기 위해 새로운 레포지토리를 생성하여 작업을 진행했습니다. 
멀티 모듈로 구조를 변경한 이후에 리모트를 기존 리모트로 변경하였고 해당 리모트에서 새로운 브랜치 생성 및 푸시를 진행하였습니다. 
그러나 브랜치를 병합하는 과정에서 "refusing to merge unrelated histories" 오류가 발생했습니다. 다음과  같은 상황에서 브랜치를 병합하는 방법을 공유하고자 합니다. 

 

 

refusing to merge unrelated histories

해당 메세지는 두 개의 독립된 레포지토리를 하나로 병합하거나 기존 레포지토리가 있는 원격 레포지토리에 새로운 레포지토리를 푸시하는 상황에서 발생합니다.
즉, 두 브랜치가 전혀 다른 히스토리를 가지고 있을 때 "refusing to merge unrelated histories" 메세지와 함께 병합을 거부합니다.

 

merge branch --allow-unrelated-histories

"--allow-unrelated-histories"은 서로 다른 깃 히스토리를 병합할 때 사용하는 옵션이며, 두 개의 분리된 히스토리를 병합할 수 있도록 허용하여 두 브랜치 간의 관계가 없더라도 병합을 강제로 수행합니다.
(다만, 협업 환경에서 해당 옵션은 매우 큰 문제가 될 수 있으니 주의가 필요합니다.)

 

두 브랜치를 병합하는 과정에서 "resolve" 해야 할 경우 "giet merge --continue"를 통해 병합할 수 있습니다.

(리베이스를 할 경우, "git rebase --continue" 로 병합할 수 있습니다.)

 

이후 브랜치를 병합하기 위해 "stash" 한 내용을 병합된 브랜치에 적용합니다.

 

"develop"에서 존재했던 "src" 폴더가 남아있기 때문에 삭제 이후 "build" 후 테스트를 진행합니다. 

(모놀리식 구조에서 멀티 모듈 구조로 변경하여 "aptner-server" 의 "bootjar" 설정은 false 로 변경되었습니다.)

 

정상적으로 푸시 및 병합이 되었습니다.