코드리뷰 방법 2단계(step1 PR merge이후)
1단계 push피드백의 원본repo에 merge된 이후
📜 제목으로 보기
그 전 1단계 마무리
- local의
step1
브랜치에서local commit만
한다. - 각종 검토후
push
한 뒤, 최초PR
을 날린다.- (local step1 —>) forkrepo
step1
-> 원본repois2js
- (local step1 —>) forkrepo
- 최초PR이후,
local commit만
하다가,2번쨰 push
부터는 피드백 반영된다.
리뷰어는 PR을 merge
-
**
리뷰어
는 **-
Push하여 피드백 반영된 fork-
step1
—> 원본-is2js
의 PR을 merge시키는 권한이 있다.-
피드백 최종반영 fork
step1
to 원본is2js
PR후 N번 피드백push -
리뷰어의 PR을 merge
-
-
1단계완성br {github_id} -> local 반영
- 참고문서: 코드리뷰 3단계
local 먼저 {github_id} checkout
-
local branch를 일단
is2js{github_id}
로 넘어온다.git checkout is2js<github_id>
원본repo와 동기화
원본repo를 별칭upstream으로 remote add
-
현재 local에 달린 git remote 확인하기
- origin: fork레포
- (B라면, pair: A의 repo)
git remote -v
-
결과
origin https://github.com/is2js/java-racingcar.git (fetch) origin https://github.com/is2js/java-racingcar.git (push) pair https://github.com/Wishoon/java-racingcar.git (fetch) pair https://github.com/Wishoon/java-racingcar.git (push)
-
원본(미션)repo를
upstream
이라는 별칭으로 원격저장소 등록해주기git remote add upstream<별칭> https://github.com/woowacourse/java-racingcar.git<원본(미션)repo>
git remote add upstream https://github.com/woowacourse/java-racingcar.git
-
결과
git remote add upstream https://github.com/woowacourse/java-racingcar.git git remote -v origin https://github.com/is2js/java-racingcar.git (fetch) origin https://github.com/is2js/java-racingcar.git (push) pair https://github.com/Wishoon/java-racingcar.git (fetch) pair https://github.com/Wishoon/java-racingcar.git (push) upstream https://github.com/woowacourse/java-racingcar.git (fetch) upstream https://github.com/woowacourse/java-racingcar.git (push)
-
fetch로 원본repo상 merge된 내 br {github_id} -> {remotes/별칭/내br}으로 가져오기
-
fetch로 원본repo상에 리뷰어에 의해 merge된
is2js
를 -> localis2js
로 가져오기git fetch upstream<별칭> is2js<가져올br명>
-
결과
git fetch upstream is2js remote: Enumerating objects: 1, done. remote: Counting objects: 100% (1/1), done. remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (1/1), 2.22 KiB | 759.00 KiB/s, done. From https://github.com/woowacourse/java-racingcar * branch is2js -> FETCH_HEAD * [new branch] is2js -> upstream/is2js
-
-
git branch -a
를 확인해보면remotes/별칭/{merge된 내br=github_id}
로 생성되었다.git branch -a
-
결과
-
rebase(1줄 이어붙merge)로 {fetch한 원격br}을 -> {로컬br}과 동기화
-
원격br -> 로컬br에 끊어진 이후부터 <merge와 달리 1줄>로 이어붙이는 작업인 것 같다.
git rebase upstream/is2js
-
결과: fetch한 remotes/
upstream/is2js
랑local의 is2js
랑 완전히 동일해졌다. -
참고로
rebase
는 커밋 n개 합치기용(-i) or merge를 깨끗하게(- merge와 비교
- 장점: 커밋해쉬 유지 및 흐름 유지되어 돌아갈 수 있음
- 단점: merge라는 불필요커밋을 생성함.
- rebase
- 장점: 주는놈위에 받는놈위주로 정리가 됨. 깨끗한 커밋 히스토리가 됨.
- merge와 비교
-
2단계 br 생성하기
step2 br 생성과 동시에 checkout
-
최신화(fetch -> rebase)된
is2js
{github_id}에서 받아와 생성되도록 한다.git checkout -b step2
이후 step2에 작업후 add/commit/push->PR->push반복->merge
-
나는
step1
에 작업하던 것이 남아서step2
에서 merge받았다.
step1 삭제
-
1단계 br은 이제 삭제한다.
git branch -d step1