안녕하세요. 에러노트입니다.
오늘은 commit 후에 브랜치를 바꾸어야 하는 경우를 기록해두려 합니다.
[현재 상태 요약]
작업 후 커밋까지 완료한 상태에서 확인해보니 main에 커밋을 올린 상태입니다.
기존에 구현하던 브랜치는 dev이고, 해당 브랜치에 푸시를 해야 합니다.
이 상태에서 main이 아닌 dev로 옮기는 방법
우선, 원하는 커밋을 복사해오기 위해 git log를 통해 해쉬번호를 확인 후 해당 7자리를 복사 후,
변경하고자 하는 브랜치의 위치로 이동해줍니다.
#기존에 해당 브랜치가 있는 경우
git checkout dev
#신규 생성,브랜치 이동
git branch dev
git checkout dev
1. 충돌이 생길 여지가 있을 때
커밋을 이동할 브랜치에서 아래 명령어를 통해 가져옵니다.
git cherry-pick 12ab34c #위에서 복사한 해쉬값을 사용합니다.
충돌이 발생한 경우 아래와 같이 skip 후 충돌된 부분을 수정합니다.
git cherry-pick --skip
해결 후 git add로 추가해준 뒤 git status로 확인 후 push를 진행합니다.
마지막으로 main의 잘못 올린 커밋을 삭제해줍니다.
git checkout main
git reset --hard 12ab34c
2. 충돌 될 부분이 하나도 없다 확신할 때
만약, 이전 변경사항과의 충돌될 부분이 없다면 곧바로 rebase를 진행하면 됩니다.
git rebase main
충돌 사항이 없다면
git push origin dev --force