Git Branch Flow

JiHoon·2022년 6월 14일
0

Git Branch Flow

목적

내가 깃 브랜치 전략을 사용하려는 이유는 크게 두가지로 볼 수 있다.

협업

혼자서 프로젝트를 진행하는 경우에는 브랜치 전략의 중요성을 크게 실감하지 못한다.
그러나 2명이상이 프로젝트를 진행하다보면 하나의 브랜치에 모두 커밋을 계속 몰아넣다보면 어디에선가 충돌이나고 그럴수록 점점 더 작업의 어려움이 느껴진다.
그래서 잘 만들어진 깃 브랜치를 이용하여 협업에 도움이 되고자 한다.

운영환경

원브랜치로 이용하는 경우 테스트용으로 작성한 코드들이 운영환경에 바로바로 배포 될 수 있기 때문에 브랜치를 제대로 분리 후 사용하고자 한다.

브랜치 전략


사용하려는 브랜치 전략을 그림으로 나타내면 위와 같다.
Main 브랜치를 기본으로 두고 Release Branch와 Feature 브랜치를 각각 두고 사용한다.
각 브랜치에 대한 설명은 아래와 같다.

Main Branch

해당 브랜치에 Merge된 코드는 모두 Prod 환경으로 바로 배포가 된다!

Main 브랜치는 해당 프로젝트의 가장 중심이 되는 브랜치로 두고 현재의 운영환경에서 동작하는 코드가 그대로 되어 있어야 한다.

Release Branch

해당 브랜치는 Dev에 배포되는 브랜치이다.

Release 브랜치는 Dev환경으로 올라가서 작성된 코드에 문제가 없는지 정상동작 하고 있는지 확인하는 용도의 브랜치이다.
해당 브랜치에서 동작이 이상이 없는 경우 Prod 환경으로 언제든 PR후 배포요청 할 수 있다.
ex) 브랜치명 : Release_20220615 (해당 브랜치는 6월 15일 배포예정)
이런 식으로 작성 후 사용 가능하다.

Feature Branch

해당 브랜치는 Local에서 작업하는 브랜치이다.

개발자는 반드시 해당 브랜치에만 직접 커밋, 푸쉬를 할 수 있다.

언제든지 얼마든지 자유롭게 코드를 수정하고 작업해서 배포 할 수 있다.
또한, 해당 브랜치를 생성할때는 반드시 Main 브랜치를 기준으로 생성한다.
작업이 완료된 이후 Release 브랜치로 PR을 보내서 코드리뷰를 진행 할 수 있다.

ex) 브랜치명 : feature/branch_flow_add (Feature 브랜치임을 보여주고 무엇때문에 생성하였는지 작성하면 좋다고 본다.)

관리

Feature 브랜치에만 커밋하는 이유

해당 Repository를 이용하는 개발자는 Feature 브랜치에만 커밋을 하기로 한 이유는 Main, Release는 실제 배포가 이루어지는 브랜치 환경이고, 해당 코드에 문제가 있는지 확인이 어렵기 때문에 PR을 통한 코드리뷰를 진행하기 위함이다.

브랜치 삭제 관련

Feature 브랜치는 PR이 끝났고 해당 브랜치를 생성한 이유가 모두 해결되었다고 판단되는 경우 삭제하여 브랜치의 무한증식을 예방한다.

추가 고려 사항

해당 브랜치전략은 Prod, Dev 두가지 환경이고, 실제 개발하는 개발인원이 극소수라서 해당 브랜치 전략으로 사용이 가능하다고 판단하였다.
그러나, 규모가 이것보다 더 큰 환경이라면 이것보다 더 세밀한 브랜치 전략이 필요하다.

profile
뒹굴뒹굴 하고 싶은 웹개발자

0개의 댓글