git 프로젝트 workflow

Creating the dots·2021년 11월 8일
0

git

목록 보기
3/3

키워드 이해하기

  • origin
    깃허브에 존재하는 원격레포를 뜻한다. 우리가 자주 사용하는 다음 명령어에서 origin은 원격레포를, main은 브랜치를 의미한다. git push origin main 또한, clone하지 않고 git init을 했을때는 git remote add origin ... 명령어를 입력하기도 한다.

  • local
    내 컴퓨터에 존재하는 레포를 의미한다.

  • upstream, downstream
    git clone을 했다면 origin은 자동으로 등록돼고, git init을 했다면 git remote add origin ...으로 origin을 등록한다. 여기서 upstream은 origin이 되고, downstream은 local이 된다.
    git push -u origin main에서 -u 옵션이 --set-upstream 옵션의 줄임말로 upstream으로 설정한다는 뜻이다. 이는 한번만 해주면 되며, 그 다음부터는 -u 옵션 없이 push, pull 해주면 된다.

github에서 레포를 생성했을때, 로컬과 원격을 연결할 수 있는 방법들을 설명해주는데, 다음 두 방법을 잘 살펴보면 origin-u 쓰임을 이해할 수 있다.

프로젝트 workflow

  • dev 브랜치는 백업용으로 feature/기능 브랜치에 문제가 생겨 코드를 되돌리고 싶을때 사용할 수 있다. 따라서 항상 upstream dev와 local dev의 sync가 맞아야한다.
    • feature/기능 브랜치에서 upstream의 dev 브랜치로 pr를 날린다. (upstream dev 업데이트)
    • local dev 브랜치에서 git pull upstream dev (local dev 업데이트)
    • origin dev 브랜치로 git push origin dev (origin dev 업데이트)

workflow

  1. upstream 레포 fork, git clone 해오기
  2. git remote add upstream <upstream 깃헙주소>
  3. upstream dev 브랜치에서 나의 local dev브랜치에 git pull upstream dev
  4. 로컬 dev 브랜치 하에 feature/기능 브랜치 생성, 이동 (git switch -c feature/기능)
  5. 로컬 feature/login브랜치에서 origin feature/login로 push
  6. upstream의 dev브랜치로 pr 날리기
  7. 팀내 코드리뷰를 거쳐 merge하고 local의 dev에서 git pull (로컬 최신화)
    merge한 후에는 동일한 파일에서 코드수정금지! git pull로 최신화한 후부터 코드수정할것.
  8. origin의 dev브랜치에 최신화된 로컬의 dev브랜치를 push (origin dev 최신화)
  9. 2번~6번 반복
  10. 마지막으로 upstream dev브랜치에서 upstream master로 merge (프로젝트 끝!)
profile
어제보다 나은 오늘을 만드는 중

0개의 댓글