-
[Github] main and branch are entirely different commit histories 해결개발 일기/오류 일기 2023. 12. 30. 23:18728x90
todo 작업을 하다가 이런 오류가 났습니다. 사실 이런 오류? 는 정말 자주 떠서 더 화나는 것 같아요. 나는 풀리퀘하고 main에 머지를 하고 싶은데 못 하겠다고 하니까 열이 받습니다. 게다가 이 이슈 때문에 저장소를 한 번 갈아엎은 적이 있어서 이번에는 꼭 해결해야겠다 싶었습니다. 그런데 이게 뭐지... 검색을 해도 다 master가 main으로 연동이 안 되어있어서 다른 브랜치로 인식하기 때문에 안 된다는 글만 수두룩해요. 저는 이 문제가 아니고 main과 다른 branch의 문제인데? 너무 답답한 마음에 스택 오버플로우에도 가입해서 물어봤습니다.
https://stackoverflow.com/questions/77734938/main-and-branch-are-entirely-different-commit-histories
main and branch are entirely different commit histories
This is my git graph enter image description here Where the graph was disconnected, I changed the file I was working on. I was working on the file A by connecting it to origin, but I disconnected A's
stackoverflow.com
그래도 어째 해결한 것 같은데? 이 방법을 한 번 써보겠습니다. 얼렁뚱땅 어 됐네? 느낌이니 반신반의하면서 봐주세요.
1. 문제
서치를 하다보니 다들 깃 그래프를 올리시더라고요. 그래서 왜 이 둘이 다른 브랜치로 인식이 되는가 설명을 해주시는 걸 보고, 저도 그래프를 다운로드하였습니다. 다운로드는 vscode의 extention에 가셔서 git graph를 검색해 최상단에 있는 걸 받아주시면 됩니다. 그러면 설치가 되는데, 파일의 깃 그래프를 보려면
깃 그래프 확인하기 저 곳에서 깃 그래프 표시를 누르면 그동안의 깃 활동 그래프가 나옵니다. 우선 제 그래프를 보시면
그래프가 끊겨있음 #1-2 아래로 그래프가 끊겨있습니다. 이때 저 끊어진 곳의 포인트를 눌러보면 "This commit is not in HEAD" 였나 비슷한 설명이 있었습니다. 그래서 저 두 브랜치를 잇고자 이것저것 검색해 봤는데 역시나 아무것도 안 뜹니다. 다들 커밋을 연결하고 계시는데 뭔가 커밋을 연결한다고 될 것 같지는 않아 보였어요.
여담으로 저 때 왜 끊어졌지? 생각해 보면, momentum 클론 웹 2번 글에서도 말했지만 리뉴얼 때문인 것 같습니다. 리뉴얼하면서 완전히 새로 작업하기 위해 새 파일을 만들고, 본래 작업하던 파일에서 origin을 끊고, 새 파일에 origin을 연결해 주었습니다. 그래서 끊긴 것 같아요.
2. 접근
그러다 문득 생각이 났습니다. 대충 머지하면서 브랜치가 저렇게 이어지는 것 같은데, main과 branch가 완전히 다르면 머지했을 때 이어진다는 거 아님? 그러면 된 거 아님? 이런 생각이 들었습니다. 그래서 머지를 강제로 한 번 해보기로 했습니다.
git merge branch
대충 이렇게 쳤는데 "refusing to merge unrelated histories"라는 오류가 났습니다. 해석해 보면 역시나 다른 브랜치라서 머지 못하겠는데요?입니다. 그리고 검색해 본 글에서는 풀을 먼저 해줘야 한다고 하길래 풀을 먼저 해줬습니다. 하지만 또 안 되길래 저거랑 같은 원인이겠거니 싶어 그냥 강제로 병합해 주기로 했습니다.
git pull origin 브런치명 --allow-unrelated-histories
강제로 풀리퀘를 해줬는데 또 "Pull is not possible because you have unmerged files"가 떴습니다. 진짜 못해먹겠다 싶은데... 검색해 보니
git status // 상태 확인 git commit -am '커밋메시지'
을 하라는 글이 있었습니다. 그래서 git status를 하니 package.json이 문제라고 떠서 그 부분을 뚝딱뚝딱 수정해 주었습니다. 그랬더니 얼레벌레 머지가 됐고
붙이기 완! 그래프가 잘 붙었습니다! 단점이 있다면 강제로 머지하고 해서 main의 원래 파일이 브랜치에 함께 왔다는 점이지만... 제 코드가 main에 올라간 것만으로도 행복합니다. 야호! 이제 나머지 오류들을 수정해야 해요... 파이팅.
728x90'개발 일기 > 오류 일기' 카테고리의 다른 글
[TailwindCSS v4.0] 버그/오류 해결 모음 (0) 2025.03.24 [Vue] 버그 / 오류 해결 모음 (0) 2024.12.30 [MySQL] 버그 / 오류 해결 모음 (0) 2023.12.24