관리 메뉴

평행우주 : world 1

[Git] 프로젝트 workflow 본문

텃밭 2 : FE/Git

[Git] 프로젝트 workflow

parallelworlds 2022. 2. 25. 06:52

기본적으로 개발을 진행하는 과정에서는 main 브랜치가 아닌 dev 브랜치를 하나 만들어서 작업을 하는 경우가 많다. dev 브랜치를 만들어서 해당 브랜치로 이동해보자. 여기서 HEAD는 현재 위치의. 즉 현재 작업중인 커밋을 가르킨다
git checkout -b dev 명령어를 통해서 dev 브랜치를 생성(git switch -c dev 명령어도 가능.) Remote Repository 에도 생성한 브랜치를 반영하기 위해서는 git push origin dev 명령어 입력.
 터미널 창에 git branch 를 입력하면 다음 화면이 뜬다. 알파벳 q 를 눌러 종료.
팀 프로젝트에 들어가기 앞서 회의를 통해 하나의 기능을 구현할 때는 ‘feature/기능이름’ 이라는 브랜치를 만들어서 작업하기로 결정. 로그인 기능을 구현하기 위해서 feature/login 이라는 브랜치를 생성해보자.
git checkout -b feature/login 명령어를 입력. git switch -c feature/login 명령어도 같은 기능을 한다.
 feature/login-oauth 라는 이름으로 feature/login 브랜치에서 파생된 브랜치를 하나 더 만들어 작업
git checkout -b feature/login-oauth 명령어를 입력. git switch -c feature/login-oauth 명령어도 같은 기능.
feature/login-oauth 에 있는 코드를 feature/login 브랜치로 병합(merge) 할 수 있는 방법 : 먼저 git checkout(switch) feature/login 명령어를 통해 feature/login 브랜치로 이동한다.
git checkout feature/login 명령어를 입력. merge하기 위해서는 먼저 병합이 될 브랜치로 이동ㅡ해야 한다. 즉 feature/login-oauth 브랜치를 feature/login 브랜치로 병합하기 위해서는 feature/login 브랜치로 이동해야 한다 git switch feature/login도 같은 기능을 한다.
feature/login-oauth 의 내용을 feature/login 브랜치로 병합하기 위해서 현재 위치가 feature/login 인 상태에서 git merge feature/login-oauth 명령어를 입력. feature/login-oauth 브랜치가 머지되기 전 feature/login 브랜치에 추가적인 커밋이 없으므로, 브랜치가 분기될 필요가 없다. 그러므로 자동적으로 fast-forward 방식으로 병합이 이뤄진다. fast-forward 방식이란 별도의 커밋을 생성하지 않고 feature/login 브랜치가 가리키는 커밋을 feature/login-oauth 가 생성한 커밋으로 바꾸는 작업을 말한다.
만일, feature/login 브랜치에 별도의 커밋이 있었다면, fast-forward가 아닌 merge commit 방식으로 병합. 이는 각 브랜치가 줄기처럼 분기한 후, 병합의 모양을 한다.
git merge feature/login-oauth 명령어를 입력해 해당 브랜치를 현재 위치한 브랜치로 병합(merge) 할 수 있다.

 

merge와 rebase의 차이점. rebase의 원리는 fast-forward와도 같다. merge 변경 내용의 이력이 모두 그대로 남아 있기 때문에 이력이 복잡. rebase 말 그대로 branch base를 이동시킨다는 뜻으로, 머지처럼 브랜치 통합을 목적으로 하지만, 특정 시점으로 브랜치가 가리키는 곳을 변경하는 기능을 한다. 그림에서 보이는 것과 같이 feature/login 브랜치에서 git rebase main feature/login 명령어를 입력하면 main의 가장 최신 커밋으로 브랜치가 가리키는 곳이 변경된다. (main의 다른 커밋에서 충돌이 없을 경우)
로컬의 작업한 내용을 Remote Repository 에 업로드하기 위해서는 push.
git push origin feature/login 명령어를 입력해 해당 브랜치를 Remote Repository로 업로드할 수 있다.
feature/login 브랜치의 변경 사항을 다른 팀원들과 함께 코드 리뷰를 하고 dev 브랜치에 적용하고 싶을 때, Github의 Pull Request 기능을 활용해 dev 브랜치로의 반영을 요청할 수 있다. 리뷰가 끝난 코드는 브라우저에서도 dev 브랜치로 merge 할 수 있다
간단하게 PR 내용을 입력한 후 Create pull request 버튼을 클릭
프로젝트 전체 흐름. Local에서 새로운 브랜치를 생성하고 작업이 끝나면 Remote Repository 로 Push 그리고 Project Upstream Repository에 반영(merge)될 수 있도록 Pull Request . 만약 작업하던 중간에 Remote upstream 에 업데이트가 생긴다면 Local 로 pull 받아주어야 한다

Comments