📜 제목으로 보기

그 전 1단계 마무리

  1. local의 step1 브랜치에서 local commit만 한다.
  2. 각종 검토후 push한 뒤, 최초PR을 날린다.
    • (local step1 —>) forkrepo step1 -> 원본repo is2js
  3. 최초PR이후, local commit만하다가, 2번쨰 push부터는 피드백 반영된다.

리뷰어는 PR을 merge

  • **리뷰어는 **

    • Push하여 피드백 반영된 fork-step1 —> 원본-is2js의 PR을 merge시키는 권한이 있다.

      • 피드백 최종반영 fork step1 to 원본 is2js PR후 N번 피드백push image-20220216001657861

      • 리뷰어의 PR을 merge

        image-20220216001818852

1단계완성br {github_id} -> local 반영

local 먼저 {github_id} checkout

image-20220216002250537

  • local branch를 일단 is2js{github_id}로 넘어온다.

    image-20220216002337190

      git checkout is2js<github_id>
    

원본repo와 동기화

원본repo를 별칭upstream으로 remote add

image-20220216003809100

  • 현재 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}으로 가져오기

image-20220216005935290

  • fetch로 원본repo상에 리뷰어에 의해 merge된 is2js-> local is2js 가져오기

      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
    
    • 결과

      image-20220216004953484 image-20220216005225625

rebase(1줄 이어붙merge)로 {fetch한 원격br}을 -> {로컬br}과 동기화

image-20220216010500314

  • 원격br -> 로컬br에 끊어진 이후부터 <merge와 달리 1줄>로 이어붙이는 작업인 것 같다.

      git rebase upstream/is2js
    
    • 결과: fetch한 remotes/upstream/is2jslocal의 is2js랑 완전히 동일해졌다.

      image-20220216010308921

    • 참고로 rebase는 커밋 n개 합치기용(-i) or merge를 깨끗하게(

      • merge와 비교
        • 장점: 커밋해쉬 유지 및 흐름 유지되어 돌아갈 수 있음
        • 단점: merge라는 불필요커밋을 생성함.
      • rebase
        • 장점: 주는놈위에 받는놈위주로 정리가 됨. 깨끗한 커밋 히스토리가 됨. image-20220216011147198

2단계 br 생성하기

step2 br 생성과 동시에 checkout

  • 최신화(fetch -> rebase)된 is2js{github_id}에서 받아와 생성되도록 한다.

       git checkout -b step2
    

이후 step2에 작업후 add/commit/push->PR->push반복->merge

  • 나는 step1에 작업하던 것이 남아서 step2에서 merge받았다.

    image-20220216012007136 image-20220216011924638

step1 삭제

  • 1단계 br은 이제 삭제한다.

      git branch -d step1