git cherry-pick
미리미리 병 말기인 저는 리뷰를 기다리다 1단계 미션 브랜치인 step1
에서 2단계 미션을 진행하는 기행을 저질렀습니다.
1단계 미션이 merge
된 이후 rebase
하기 위해 step1
을 merge
된 저장소에 rebase
하려 시도해봤지만, 시도하면 할수록 브랜치의 상태는 심각해져만 갔네요...
step1
과 step2
는 이미 한몸이 되어버렸습니다🥲
안타깝고 슬픈 시간을 보내다 슬랙에 구조 요청을 했더니 구세주(코난)가 나타나 도와주셨습니다.
(넌 처음부터 잘못된 거야)
태생적으로 꼬여버린 제 깃을 구하기 위해 코난은 main
에서 새로운 브랜치를 만들어 merge
된 저장소를 rebase
하시고, 이후 step2
를 만들어 merge
이후의 커밋을 step2
로 git cherry-pick
이라는 새로운 기술로써 옮겨주시는 기적을 보여 주시고는 홀연히 떠나갔습니다.
git checkout main
태초 마을로 돌아간다.
git fetch {저장소 이름} {사용자id}
merge된 commit들을 가져온다.
git rebase {저장소 이름}/{사용자id}
충돌 없게 진행하기 위해 main에 rebase
1단계 머지 부분까지 완료됨
git checkout {커밋을 옮기고 싶은 목적지 브랜치}
git log
를 이용하여 커밋 로그 확인
옮기고 싶은 커밋이 1개인 경우 git cherry-pick {커밋 로그}
옮기고 싶은 커밋이 2개 이상인 경우 git cherry-pick {옮기고 싶은 커밋 시작 부분보다 1개 전의 커밋 로그}...{옮기고 싶은 커밋들 중 가장 최근 커밋 로그}
ex) git cherry-pick c9e5eeb..a85a710
원하는 그 모습으로 돌아온 나의 브랜치들..같은 실수를 반복할 수 있기에 기록해봅니다.