blog
다른 저장소의 커밋 기록을 유지한 채 PR 올리기
Front-end / Git#Git#GitHub#Pull Request#remote
별도 organization에서 작업한 프로젝트를 원래 과제 저장소(예: KDT1-FE)에 PR로 올려야 할 때, 커밋 기록을 그대로 유지하는 방법이다.
1. 대상 저장소 fork
PR을 올릴 저장소를 fork한다. owner는 작업한 저장소가 있는 organization으로 지정한다.
2. fork한 저장소에서 작업 저장소 병합
작업한 저장소를 remote로 추가한다.
git remote add <remote 이름> <repository_url>
# 예시
git remote add test https://github.com/test/test.git
정상적으로 추가되었는지 확인한다.
git remote -v
병합에 사용할 브랜치를 만든다.
git switch -c <branch_name>
작업 저장소의 브랜치를 가져와 병합한다.
git fetch <remote 이름>
git merge <remote 이름>/<remote 브랜치 이름>
두 저장소의 기록이 이어져 있지 않아 refusing to merge unrelated histories 에러가 나면 옵션을 붙인다.
git merge <remote 이름>/<remote 브랜치 이름> --allow-unrelated-histories
3. PR 생성
fork한 저장소에서 원래 저장소로 PR을 만든다. 병합한 커밋 기록이 PR에 그대로 포함된다.