Profile picture

[Git] 프로젝트 workflow

JaehyoJJAng2022년 03월 08일

Project workflow 시나리오

재효팀 은 Final 프로젝트를 하게 되었음.

  1. 프로젝트용 Remote repository 생성
  2. 팀원들과의 협업을 위하여 각자의 Remote repository 로 Fork
  3. 그리고 가져온 Remote repository를 로컬에서 작업하기 위하여 git clone 하여 Local로 프로젝트 가져오기

작업 브랜치 만들기

  • 기본적으로 개발을 진행함에 있어서 main 브랜치가 아닌 dev 같은 브랜치를 새로 하나 파서 작업을 하는 경우가 많음
    • git checkout -b 새로운 브랜치 이름 : 'dev' 브랜치를 생성하고 dev 브랜치로 이동
    • git switch -c 새로운 브랜치 이름 : 'dev' 브랜치를 생성하고 dev 브랜치로 이동

Remote repository에 생성한 브랜치 반영하기

git push origin dev

브랜치가 잘 생성 되었는지 확인

git branch

기능 구현시의 브랜치 전략

  • 프로젝트 시작에 앞서 팀 회의를 통해 하나의 기능을 구현할 때는 반드시 feature/기능이름 이라는 브랜치를 만들어서 작업하기로 결정
    • git checkout -b feature/login
  1. 구현된 feature/login 기능에 소셜 로그인(oauth) 를 추가하고자 함
  2. 그런데 현재 정상적으로 구현되어 있는 feature/login 브랜치에 올라가있는 코드를 건드리자니 불안함
  3. 그래서 새로운 브랜치를 파서 거기에서 작업하려고 결정
    1. git checkout -b feature/login-oauth
    2. git switch -c feature/login-oauth

브랜치 병합

이제 위에서 말한 로그인 기능들이 각각의 feature/login,feature/login-oauth 브랜치에서 구현 되었음.

❗️ feature/login-oauth에 있는 코드를 feature/login 브랜치로 병합(merge) 할 수 있는 방법은?

  1. git checkout feature/login 명령어를 통해 feature/login 브랜치로 이동
    1. merge 하기 위해서는 먼저 병합이 될 브랜치로 이동을 해야 함
    2. 즉, feature/login-oauth 브랜치를 feature/login 브랜치로 병합하기 위해서는 feauture/login 브랜치로 이동
  2. 현재 브랜치 위치가 feature/login 인 상태에서 git merge feautre/login-oauth 명령어 입력
    1. feature/login-oauth 브랜치가 머지되기 전 feature/login 브랜치에 추가적인 커밋이 없으므로, 브랜치가 분기될 필요가 없음 그러므로 자동적으로 fast-forward 방식으로 병합이 이뤄질 것임
    2. 만약, feature/login 브랜치에 별도의 커밋이 있었다면, fast-forward가 아닌 merge commit 방식으로 병합되었을 것.
  3. git merge feature/login-oauth 명령어를 입력해 해당 브랜치를 현재 위치한 브랜치로 병합(merge) 할 수 있음

작업 내용 업로드

git push -u origin feature/login

위 명령어를 사용해 feature/login 브랜치를 Remote repository 로 업로드

코드 리뷰

  1. 현재 자신의 Remote repository 에 업로드된 feature/login 브랜치를 팀 Remote repositoryPR(Pull Request)

feature/login 브랜치의 변경 사항을 팀원들과 함께 리뷰


Loading script...