Project workflow 시나리오
재효팀
은 Final 프로젝트를 하게 되었음.
- 프로젝트용
Remote repository
생성 - 팀원들과의 협업을 위하여 각자의 Remote repository 로
Fork
- 그리고 가져온 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
- 구현된 feature/login 기능에
소셜 로그인(oauth)
를 추가하고자 함 - 그런데 현재 정상적으로 구현되어 있는
feature/login
브랜치에 올라가있는 코드를 건드리자니 불안함 - 그래서 새로운 브랜치를 파서 거기에서 작업하려고 결정
git checkout -b feature/login-oauth
git switch -c feature/login-oauth
브랜치 병합
이제 위에서 말한 로그인 기능들이 각각의 feature/login
,feature/login-oauth
브랜치에서 구현 되었음.
❗️ feature/login-oauth에 있는 코드를 feature/login 브랜치로 병합(merge) 할 수 있는 방법은?
- git checkout feature/login 명령어를 통해 feature/login 브랜치로 이동
- merge 하기 위해서는 먼저
병합이 될 브랜치로 이동
을 해야 함 - 즉,
feature/login-oauth
브랜치를feature/login
브랜치로 병합하기 위해서는feauture/login
브랜치로 이동
- merge 하기 위해서는 먼저
- 현재 브랜치 위치가
feature/login
인 상태에서git merge feautre/login-oauth
명령어 입력feature/login-oauth
브랜치가 머지되기 전feature/login
브랜치에 추가적인 커밋이 없으므로, 브랜치가 분기될 필요가 없음 그러므로 자동적으로fast-forward
방식으로 병합이 이뤄질 것임- 만약,
feature/login
브랜치에 별도의 커밋이 있었다면, fast-forward가 아닌merge commit
방식으로 병합되었을 것.
git merge feature/login-oauth
명령어를 입력해 해당 브랜치를 현재 위치한 브랜치로 병합(merge) 할 수 있음
작업 내용 업로드
git push -u origin feature/login
위 명령어를 사용해 feature/login 브랜치를 Remote repository
로 업로드
코드 리뷰
- 현재 자신의 Remote repository 에 업로드된
feature/login
브랜치를 팀Remote repository
로PR(Pull Request)
feature/login 브랜치의 변경 사항을 팀원들과 함께 리뷰