개발새발

[Git ] PR 을 날리려고 했는데, There isn't anything to compare. ? 본문

우아한테크코스/level2

[Git ] PR 을 날리려고 했는데, There isn't anything to compare. ?

무비인 2022. 5. 1. 11:15

작성 이유

한참을 작업한 후, PR을 날리려고 했는데, There isn't anything to compare 이라는 문구를 마주쳤다.
분명 기존 레포지토리를 fork 한 후, 작업을 하고 push 했고, commit 내역도 있는데 왜 그랬지 ?

 


PR 이란?

PR이란, Pull Request의 약자로, 기존 깃허브 저장소에 보관된 코드 베이스에서 내 작업으로 인해 생긴 변경사항들, 즉 코드 라인들의 추가와 삭제를 코드 베이스에 포함시켜달라고 보내는 요청이다.

원인

기존 레포지토리를 포크 한 후, 다른 레포를 upsteam 브런치로 등록하여 -> fetch / rebase 를 받았었다. (기존 체스 미션 코드를 가져오려고)그랬더니 upsteam 브런치의 commit 내역이 PR 을 요청할 레포의 commit 시작 내역 보다 앞에 있어서 결과적으로 commit 시작 지점이 다르게 되었다.

해결 방법

git 에서 PR에 변경사항을 저장하는 기준이 base repository commit 내용 다음 부터이다.
따라서 새로운 브런치를 만들어서, 기존 작업 내역은 fetch / rebase 가 아닌, cherry-pick 으로 가져온다.

 

 


 

cherry-pick 이란?

cherry pick이란, 체리 한 바구니에서 제일 좋은 체리만 고르는 것에서 유래한 표현이라고 한다.
일반적으로는 제일 좋은 걸 선별한다는 뜻으로 쓰인다.

cherry-pick 문법

$ git cherry-pick <commit여섯자리번호>

만약 여러개의 커밋 내역을 가져오려고 한다면, 아래와 같이 하면 된다.

$ git cherry-pick <시작 commit 여섯자리번호>  <끝 commit 여섯자리번호>

 

 


출처