<aside>

git branch에 대한 규칙을 정하고 저장소를 잘 활용하기 위해 workflow를 정의합니다

</aside>

브랜치를 나누는 이유?

유지보수를 하기보다 협업하면서 수정된 코드의 충돌을 방지하기 위해

→ 하위 브랜치에서 코드를 작성하고 상위 브랜치로 merge

Github Flow에서 devleop 브랜치를 추가해서 관리한다.

항상 배포되는 main 브랜치를 중심으로 한 전략, git flow보다 훨씬 단순하다

image.png

  1. upstream에서는 main 브랜치와 develop 브랜치만 관리한다.
  2. 개발 feature는 develop 브랜치에서 따서 작업 후 develop 브랜치로 머지한다.
  3. 협업으로 인한 추가 브랜치가 필요한 경우 upstream에서 feature 브랜치를 생성하여 2와 같은 방식으로 작업한다.

작업 흐름

1~3번은 초기 세팅, 4번부터는 필요할때마다 수행

  1. 로컬에 Fork & Clone (+ 의존성 설치)

    git clone <your-forked-repo-url>
    
    npm i # 의존성 재설치
    
  2. 로컬에서 Upstream 레포 등록하기

    git remote add upstream <upstream-repo-url>
    git remote -v
    
  3. Upstream의 develop 브랜치를 로컬로 가져오기 ⇒ 기본 브랜치 동기화 작업

    # upstream 브랜치 상태를 가져와야 함 → upstream/main, upstream/develop 브랜치가 생김
    git fetch upstream
    
    # upstream/develop 기반으로 로컬 develop 브랜치 생성하고 전환하기
    git checkout -b develop upstream/develop
    
    # 로컬 develop 브랜치를 개인 저장소에 업로드
    git push origin devleop
    

    스크린샷 2024-12-13 오후 6.13.07.png

    스크린샷 2024-12-13 오후 6.13.30.png

  4. 새로운 feature 브랜치 생성 및 작업

    # develop 브랜치에서 새로운 feature 브랜치 생성하기
    git checkout -b feature/<branch-name> develop
    
  5. 커밋, 푸시

    git add .
    git commit -m "Add: 설명 추가"
    git push origin feature/<branch-name>
    
  6. PR 하기 전에 충돌 확인하기

    # 최신 상태로 유지
    git fetch upstream
    git rebase upstream/develop