
PR의 검토가 완료되면 PR 생성자는 main 브랜치에 squash and merge로 병합한다.
원격 레포의 브랜치와 로컬 레포의 브랜치에서 base 커밋 히스토리가 달라질 경우 원격 레포의 브랜치로 rebase 하여 PR을 생성한다.
rebase 방법
현재 체크아웃 된 브랜치가 feat/기능개발 이라고 가정한다.
git fetch origin main //원격 레포의 main 브랜치 가져오기
git rebase origin/main //가져온 원격 레포의 main브랜치로 base 설정하기
위의 두 명령어 입력 후 conflict 발생 시 충돌을 해결한 후 다음 명령어를 입력한다.
git add . // 변경사항 스테이징 영역에 올리기
git rebase --continue // 충돌 이후 다시 rebase 시도
만약, rebase를 중지하고 싶다면 git rebase --abort 명령어를 입력하여 취소한다.
위 작업이 완료된 이후, PR을 올리면 브랜치 충돌이 해결된다.
만약, 같은 파일을 수정하여 conflict가 발생할 경우 일반 Merge로 컨플릭트 해결 후 PR을 병합하면 된다.
git fetch origin main // 원격 레포의 main 브랜치 가져오기
git checkout main // 내 로컬에 main 브랜치로 Head 포인터 이동
git reset --hard origin/main // 로컬 main 브랜치의 브랜치 포인터를 원격 main 브랜치로 이동
git stash 명령어를 입력하여 변경사항을 임시 저장한다.
git checkout -b feat/Modal // 현재 체크아웃된 브랜치와 관계없이 새로 만들어서 이동하거나 이미 브랜치가 존재한다면 만들지 않고 이동하면 된다.
git fetch origin feat/Modal // 원격 레포의 feat/Modal 브랜치를 가져온다.
git reset --hard origin/feat/Modal // 내 로컬의 브랜치를 원격 브랜치로 덮어 씌우는 작업