My Boundary As Much As I Experienced

git/github) 깃허브 There isn't anything to compare 상황 해결 본문

Git ・ Github

git/github) 깃허브 There isn't anything to compare 상황 해결

Bumang 2023. 7. 31. 08:36

에러 상황

  1. 깃 브랜치를 만들어 작업하던걸 커밋
  2. 원격저장소의 똑같은 이름의 브랜치로 push
  3. main 레포지토리에 병합하려고 하니 There isn't anything to compare라는 이야기가 나옴.

 

 

원인

다른 블로그들과 stack overflow를 뒤져가며 찾아봤는데, 많은 사람들이 이 상황을 'main-master 브랜치 네임 변경 시기'에 겪었나보다. 브랜치 이름 바꾸는 법밖에 안 나와있었다. 나는 이미 main브랜치로 기본 브랜치 이름을 바꿔놓은 상황이고... 하여튼 실질적인 답을 얻지 못하여 Chat-gpt에게 물어봤다.

 

gpt님의 답변:

더보기

"There isn't anything to compare"라는 메시지는 두 가지 경우에 주로 발생합니다:

  1. 브랜치 간 비교할 변경사항이 없는 경우: 이 메시지는 두 브랜치 간에 비교할 변경사항이 없을 때 출력됩니다. 예를 들어, 현재 브랜치와 비교 대상 브랜치가 동일한 커밋을 가리키는 경우입니다. 이 경우 브랜치 간에 변화가 없기 때문에 아무것도 비교할 수 없다는 메시지가 표시됩니다.
  2. 비교 대상이 없는 경우: 비교 대상으로 지정된 커밋, 브랜치, 또는 태그가 존재하지 않는 경우에도 이 메시지가 나타날 수 있습니다. 즉, 비교할 대상이 없어서 Git이 변경사항을 비교할 수 없다는 것을 나타냅니다.

이 메시지가 나타나는 경우, 변경사항을 비교하기 위해 비교 대상을 확인하고 브랜치 간에 차이점이 있는지 확인해야 합니다. Git 명령어를 사용하여 비교 대상을 변경하거나, 현재 브랜치에서 새로운 커밋을 만들어서 변경사항을 생성하면 이 메시지가 사라질 수 있습니다.

조금 더 쉽게 말을 다꿔보자면

 

git clone을 제대로 하지 않은 경우 (저장소의 내용을 제대로 내려받아 작업하지 않은 경우)
공동 작업하는 저장소에서 git clone을 제대로 내려받아 작업을 이어와야 하는데 git clone을 제대로 하지 않은 경우에 발생한다. 아무런 상관없는 파일을 git remote add origin <레포지토리 주소>를 해서 보냈다는 경고이다.

 

해결 방법

사실 아무것도 겹치는 내용도 없고 상관없는 레포지토리라는 것은 제대로 동기화가 안 되었다는 소리이며, 어떻게든 동기화하면 될 일이다.

정확히 내가 어떤 방식으로 해결했는지 명징하게 파악한 것은 아니지만,

 

1. 자신이 작업하던 branch에 git pull origin main을 한다.

현재 원격 저장소의 main의 commit기록과 history를 일치시켜야 한다.

*(만약 상관없는 저장소라서 pull할 수 없다는 에러가 뜨면) git pull origin <자기 브런치> --allow-unrelated-histories 를 시도한다.(강제 병합)

 

2. 만약 conflict 있는 부분이 생기면 파일 옆에 "!"표시가 생긴다. !마크가 있을 시 파일들을 살펴보며 conflict나는 부분 중 무엇을 선택할지 고르고 다시 한 번 commit하여 변경사항을 저장한다.

 

 

3. 저장한 후 git push origin <자기 브랜치>을 하면 pull request를 성공적으로 할 수 있게 된다.

'Git ・ Github' 카테고리의 다른 글

[Git/Github] Git/Github 명령어 정리  (0) 2023.07.17