본문 바로가기

Git

[Git] PR에 원치 않은 commit이 포함되는 문제

문제 상황

현재 진행 중인 프로젝트에서 원본 레포지토리를 fork를 떠서 개인 레포지토리로 작업을 진행하고 있었다.

`FCM 알림`에 관련된 내용들을 작업하고 PR을 보내고 아직 머지가 되지않았다. 이런 상황에서, 브랜치를 새로 생성해 `댓글` 관련 api를 추가적으로 작업했다.

`댓글` 관련 api만 급히 머지가 되어야 하는 상황인데, 이전 PR이 머지되지 않았기 때문에 `FCM 알림` 내용도 함께 해당 PR에 올라가게 되었다.

 

해결 방법

upstream 레포지토리(원본 레포지토리)의 default 브랜치에서 새로운 브랜치를 생성하고, 이전 작업 내용들을 cherry-pick 해오기로 했다.

 

1. 원본 레포지토리의 머지해야할 default 브랜치에서 새로운 브랜치를 생성한다.
`develop` 브랜치에서 `feature/try/commentUpdate` 브랜치를 생성했다.

 

2. 원본 레포지토리에 새로 추가된 브랜치를 포크한 내 레포지토리에도 가져온다.

git remote add upstream [원격 저장소 주소: https://github.com/~]
// 오리지널 레포를 upstream으로 추가

git remote -v
// 잘 되었는지 확인

git fetch upstream [새로운 브랜치: featrue/commentUpload]
// 새로운 브랜치들을 upstream featrue/commentUpload 이런 식으로 가져옴

git checkout featrue/commentUpload

git push origin featrue/commentUpload
// 내 레포에도 반영

git remote remove upstream
// 원격 저장소 연결 끊기

 

3. Cherry Picker

인텔리제이에서 작업을 진행했다.

 

3.1 작업할 브랜치(다른 브랜치의 커밋을 받을 브랜치)로 이동

 

3.2 Branch All로 변경

 

3.3 원하는 항목 선택 > 오른쪽 마우스 > Cherry-Pick

 

3.4 PR 생성

 

참고 자료

https://maktubi.tistory.com/237

 

[Github] fork한 레포를 re-fork 하고 싶을 때 (오리지널 레포에 새로 추가된 브랜치 가져오기)

https://github.com/mijinkoo/2022-1-Euron-Study-Assignments GitHub - mijinkoo/2022-1-Euron-Study-Assignments: Euron 2기 스터디팀 예습·복습 과제 제출 Euron 2기 스터디팀 예습·복습 과제 제출. Contribute to mijinkoo/2022-1-Euron-Stud

maktubi.tistory.com