본문 바로가기
Dot/Woowa-dots

[우아한테크코스] 코드 리뷰 과정

by jum0 2021. 2. 28.

코드 리뷰

< 1 단계 - 미션 시작하기 >

1. 미션 시작하기 버튼을 누르면, 미션 원본 저장소에 본인 깃허브 아이디의 브랜치가 생성된다.

2. 원본 저장소(woowacourse/javascript-lotto)에서 Fork를 눌러 미션을 자신의 계정으로 복사해온다.

Fork - github repository를 그대로 복사하는 기능

3. 자신의 remote 저장소(github - jum0/javascript-lotto)에서, 특정 브랜치(jum0)를 local 저장소(내 컴퓨터)로 가져온다.

git clone -b {본인_아이디} --single-branch {본인의_저장소_url}

ex) git clone -b jum0 --single-branch https://github.com/jum0/javascript-lotto
ex) git clone -b shinse --single-branch https://github.com/shinse/javascript-lotto
-b : branch의 약자

4. 이번 단계 미션을 수행할 브랜치 생성함과 동시에 현재 브랜치로 지정한다. (clone 한 폴더로 이동해서 아래 명령어 입력)

git chekout -b 브랜치 이름

ex) git checkout -b jum0-step1
ex) git checkout -b shinse-step1
checkout  -b {브랜치 이름}: {브랜치 이름}의 브랜치를 생성하면서 동시에 현재 브랜치로 변경
<branch 관련 명령어>

git branch // 브랜치 목록 확인
git checkout {브랜치_이름} // 현재 브랜치를 {브랜치_이름}이라는 브랜치로 변경
git branch -d {브랜치_이름} // {브랜치_이름}의 브랜치를 제거

< 2단계 - 페어 프로그래밍 >

1. jum0가 먼저 시작해서 add / commit / push(명령어 - git push origin jum0-step1) 하면, 자신의 저장소(jum0/javascript-lotto)에 해당 브랜치(jum0-step1)가 생기며 커밋 로그가 반영된다.

2. 다음으로 shinse 차례에서, shinse는 가장 최신의 브랜치(jum0-step1)를 가져와 자신의 브랜치(shinse-step1)에 반영해야 한다. 따라서 동기화 작업을 위해 자신의 local 저장소에 jum0의 remote 저장소를 추가(연결)한다. (최초 한 번만) shinse는 clone 한 폴더에서 다음 명령어를 입력한다.

git remote add {저장소_별칭} {추가할_저장소_url}

ex) git remote add pair https://github.com/jum0/javascript-lotto // 여기서 pair는 임의로 지정한 것

git remote -v를 통해 확인 가능

3. shinse의 local 저장소는 jum0의 remote 저장소와 연결이 된 후, jum0의 최신 브랜치(jum0-step1)를 가져와 자신의 브랜치(shinse-step1)와 병합한다(pull).

git pull {저장소_별칭} {가져올_브랜치_이름}

ex) git pull pair jum0-step1 // 저장소 별칭은 2. 에서 remote add 할 때 임의로 지정한 별칭

4. shinse는 jum0-step1이 병합된 자신의 브랜치(shinse-step1)에 add / commit 작업을 하고, push(명령어 - git push origin shinse-step1)하면 자신의 remote 저장소(shinse/javascript-lotto)에 해당 브랜치(shinse-step1)가 생기며 커밋 로그가 반영된다.

5. jum0는 shinse의 브랜치(최신 코드)를 가져오기 위해서, 자신의 local 저장소에 shinse의 remote 저장소를 추가(연결)한다. (최초 한 번만) jum0는 clone 한 폴더에서 다음 명령어를 입력한다.

git remote add {저장소_별칭} {추가할_저장소_url}

ex) git remote add pair http://github.com/shinse/javascript-lotto // 여기서 pair는 임의로 지정한 것

6. jum0의 local 저장소는 shinse의 remote 저장소와 연결이 된 후, shinse의 최신 브랜치(shinse-step1)를 가져와 자신의 브랜치(jum0-step1)와 병합한다(pull).

git pull {저장소_별칭} {가져올_브랜치_이름}

ex) git pull pair shinse-step1 // 저장소 별칭은 5. 에서 remote add 할 때 임의로 지정한 별칭

7. 이후 1, 3, 4, 6 과정을 반복한다.

< 3단계 - Pull Request 보내기 >

1. jum0/javascript-lottojum0-step1에서 woowacourse/javascript-lottojum0로 보낸다.

< 4단계 - Merge 후 다음 단계 진행 >

1. merge 통보를 받으면 woowacourse/javascript-lotto 저장소의 jum0 브랜치는 최신화 상태가 된다. 이번 단계를 간단히 요약하면 woowacourse/javascript-lotto 저장소의 jum0 브랜치 정보를 local 저장소로 가져와(fetch), local 저장소의 jum0 브랜치와 동기화(rebase) 해주는 것이다.

2. merge 통보를 받은 후, 현재의 브랜치(jum0-step1)를 jum0(1단계 미션 시작하기 3. 참고)로 변경한다.

git checkout {브랜치_이름}

ex) git checkout jum0

3. local 저장소와 merge 된 woowacourse/javascript-lotto 저장소를 연결(동기화) 하기 위해서, local 저장소(jum0/javascript-lotto)에 woowacourse/javascript-lotto 저장소를 추가(연결)한다. (최초 한 번만)

git remote add {저장소_별칭} {추가할_저장소_url}


ex) git remote add upstream http://github.com/woowacourse/javascript-lotto // 여기서 upstream은 임의로 지정한 것

4. local 저장소와 woowacourse/javascript-lotto 저장소가 연결되었다면, fetch로 동기화하고 싶은 woowacourse/javascript-lotto 저장소의 jum0 브랜치를 가져와야 한다. local 저장소에 가져온 브랜치가 새롭게 생성된다.

git fetch {저장소_별칭} {가져올_브랜치_이름}

ex) git fetch upstream jum0 // upstream은 3. 에서 임의로 지정한 별칭

새롭게 생성된 브랜치는 git branch -a로 확인 가능하다.
fetch - 원격 저장소로부터 필요한 파일을 다운 (병합은 따로 해야 함)
pull - 원격 저장소로부터 필요한 파일을 다운 + 병합

5. woowacourse/javascript-lotto 저장소에서 가져온 upstream/jum0 브랜치를 local 저장소의 jum0 브랜치와 동기화한다.

git rebase {브랜치_이름}

ex) git rebase upstream/jum0
rebase, merge 차이 참고

6. 미션의 다음 단계를 진행하기 위한 브랜치를 생성하고, 저장소의 현재 브랜치를 jum0에서 jum0-step2 로 변경한다. (이후 과정은 이전 과정과 동일)

 

참조 코드 리뷰 1단계 / 코드 리뷰 2단계 / 코드 리뷰 3단계 / 썬 방식


수정해야 할 부분이 있다면 알려주세요!

감사합니다!

반응형

댓글