내 branch에서 별도로 commit이 되어 있는 상태에서,
페어 프로그래밍 후 페어의 branch를 fetch/rebase해서 다시 PR을 보내는 과정은
생각보다 많은 난관이 있더군요.. 그래서 여기다가 그 과정을 좀 남겨보겠습니다.
먼저 upstream에서 J167를 가져와 줍니다.
J053과 J167은 지구반대편마냥 멀어져 버렸군요..
git remote add upstream https://github.com/boostcampwm2023/web-be-p2-was
git fetch upstream J167
git switch main
git switch -c J167
git rebase upstream/J167
우선은 J167을 upstream/J167과 동기화해줘야 합니다.
가장 좋은 것은 충돌이 없을 것으로 예상되는 main에서 가지치기를 해서 가져옵니다.
충돌이 있으면 git rebase 명령 후에 위와 같은 노란색 hint를 포함한 에러가 뜹니다. 한마디로
git rebase --continue
git rebase --skip
git rebase --abort
셋 중 하나를 선택해서 터미널에 입력하라는 다소 머리아픈 얘기를 합니다.
결론적으로 저희는 git rebase --skip
만 계속 갈겨주면 됩니다.
이제 J167 브랜치를 변화시켜 봅니다. upstream/J053을 기준으로 rebase를 시키는 건데,
우선 week5-day3에서 PR 날려서 Merge까지 한 upstream/J053를 다시 땡겨와보죠.
git fetch upstream J053
git switch J053
git rebase upstream/J053
J053이 upstream/J053에 동기화되었습니다.
이제 main이후로 분기되는 저 지점 이후의 모든 upstream/J167 커밋들을
J053 커밋들 이후로 복붙해서 기다란 (더럽혀진)J167브랜치를 만들어야 합니다.
그래야 PR을 충돌없이 날릴 수 있겠죠?
하여간 이번에도 rebase를 하면 됩니다. 끝날때 까지 git rebase --skip을 갈겨봅니다.
git switch J167
git rebase J053
git rebase --skip # rebase 끝날 때까지 계속 반복
드디어 드디어 저희가 원하는 그림이 나왔습니다! 이대로 PR 날려도 충돌이 없겠죠 이제
오늘 날릴 week5-day5 브랜치를 가지치기해줍니다.
git switch J053
git switch -c week5-day5
git rebase J167로 똑같이 만들어 주고 push
git rebase J167 # 바로 됩니다.
git push origin week5-day5
삽질하다가 commit이 꼬였다면 과감하게 push -f를 날려줍니다.
git push -f origin week5-day5
이제 사용하지 않는 branch들을 제거하면 되고, Github에서 PR을 날리면
git branch -D J167
git branch -D week5-day3
제가 지금 편집하고 있는 이 화면처럼 아름다운 PR 생성창을 얻을 수 있습니다.
오늘도 성.장.했.다. ㅋ굳
ㅋㅋㅋ아니 이건 또 언제 올리셨대 아주 좋습니다