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