본문 바로가기
우아한테크코스 5기/정리

[git] origin에 merge된 브랜치에서 추가로 진행된 commit 이동하기

by 코드 이야기 2023. 2. 27.
728x90

 

문제 상황

 

local step1이 origin otter66에 머지가 된 후

local step1의 커밋 내용을 그대로 가지고 새로운 브랜치 local step2를 만들어 

local step2에 불필요한 local step1 커밋 기록들이 남아있는 상황

 

 

문제 발생 이유

local step1이 origin otter66에 머지가 된 후

머지된 브랜치로 체크아웃을 하고, 새롭게 step2를 만들어야 했으나

step1에서 곧바로 step2를 만들어 step1의 커밋(해시값까지 같은 커밋)들이 step2에 따라왔다.

 

⇒ 제발 머지된 브랜치에서 곧바로 다른 브랜치를 만드는 행동은 하지 말자...! 멈춰...! 제발...!

 

 

해결 과정

 

1. upstream에서 머지된 origin otter66을 local otter66으로 복사해 가져온다.

 

 

 

2. local otter66에 checkout을 한다.

 

3. local step2로 가서 local otter66에 가져올(남겨둘) 커밋들을 드래그한다. (checkout 아님)

 

4. 우클릭 후 체리픽

  - 체리픽 : 타 브랜치의 커밋의 일부를 현재 브랜치의 커밋으로 적용시킬 때 사용하는 명령어

// 명령어
git cherry-pick 8a8f2d64..be2271fe
git cherry-pick 복사할 커밋 범위 시작점..복사할 커밋 범위 종료점

 

5. 강제 푸시

git push origin --force otter66:step2
git push origin --force local otter66에서:origin step2로

 

6. step2로 돌아와 pull을 해준다

깔끔 ***

 

 

⇒ 제발 머지된 브랜치에서 곧바로 다른 브랜치를 만드는 행동은 하지 말자...! 멈춰...! 제발...!

 

 


여담

문제 해결을 미션으로 내준 페리 제이슨, 천재 산군, 조조교 아크 감사합니당!

자체숙제 : git 공부하기

 

 

728x90

댓글