udemy 강의를 들으면서 잔디를 관리하기 위해 하나의 레포에 강좌 당 브랜치를 파서 커밋을 했다.
브랜치에 push하는건 잔디가 생성되지 않는다는 것을 알고 있었기 때문에,
이를 해결하기 위해main
브랜치에merge
를 하려고 했다.
그런데...!
There isn’t anything to compare. main and branch2 are entirely different commit histories.
라는 문구가 뜨며, PR 자체가 생성되지 않는 문제가 있었다.
아무래도, 강좌 간 코드가 전혀 겹치지 않아서 비교 대상이 발생하지 않았기 때문인 것 같은데,
이걸 그냥 놔두자니 내가 공부한 기록이 너무 아깝다..
해결 방법을 찾아보자!
현재 브랜치 상황은 위와 같다.
main
브랜치는 레포 생성 시 만들어뒀던 기본 파일들로 이루어져 있으며,
강의를 들으며 챕터마다 브랜치를 따서 따로 파일을 보관했다.
그리고 잔디를 심기 위해 main
에 PR
을 날리려고 했는데...
이런 문구가 보이면서 PR
생성 자체가 불가능했다.
간단한 해결 방법으로 생각난 것이
main
브랜치의 내용을 끌어와서 history를 같게 만들고 merge
가능하게 만드는 것이었다.
git pull origin main
하지만 결과는 다음과 같았다.
fatal: refusing to merge unrelated histories
pull
부터가 정상적으로 작동하지 않는다.
git pull origin main --allow-unrelated-histories
해결 방법은 생각보다 간단했다.
--allow-unrelated-histories
를 활용하는 것이다.
이러면 이전에 보였던 history가 겹치지 않는 문제를 무시한채로 pull
이 가능하다.
이후에는 일반적인 pull
상황과 같다.
conflict를 해결하고, 작업 중인 브랜치에 push
하는 것 말이다!
짠! 이제 PR
생성이 잘된다.
merge
까지 해주면, 잔디가 심어진 것을 확인할 수 있다 :)