티스토리 뷰

카테고리 없음

[Git] Git Branch 전략

okerry 2024. 3. 2. 17:30

처음 Git을 사용할 때는 대부분 단순히 소스 코드를 보관하는 용도로만 활용했었다.
하지만 업무를 진행하면서, Git Branch라는 개념을 알게 되었고 코드의 버전 관리뿐만 아니라 여러 사람과의 협업 과정에서 Git Branch 전략이 중요하다는 것을 깨닫게 되었다.
 

1. Git Branch 전략

Git Branch 전략은 프로젝트의 소스 코드를 효과적으로 관리하기 위해 브랜치를 어떻게 생성, 사용, 병합할지에 대한 규칙을 정하는 것이다.
내가 이해하기 위해 생각했던 예시를 적어보자면 대규모 건설 프로젝트를 생각하면 쉬웠다.
각 분야별로 전문가(용접, 전기 등)들이 동시에 다양한 부분은 작업하면서도, 전체적으로는 구조가 통합되고 조화를 이루게 된다.
Git Branch 전략은 위와 같은 과정을 코드에서 가능하게 해 준다고 생각했다.
각 개발자가 독립적으로 작업을 진행하면서도, 최종적으로는 안정적인 버전의 결과물로 통합될 수 있도록 돕는 것이다.
 
Git Branch 전략을 팀 내에서 규칙을 정해 사용해도 좋지만 관례적으로 Git Flow와 GitHub Flow가 있다.
 
 

2. Git Flow

Git Flow 모델은 복잡한 프로젝트의 개발과 배포를 관리하기 위한 방식이다.
이 모델은 여러 종류의 브랜치를 사용하여 기능 개발, 릴리즈 준비, 유지 보수 작업을 명확하게 구분할 수 있다.
 

https://nvie.com/posts/a-successful-git-branching-model/

 
각 브랜치별 부여된 규칙은 아래와 같다.

  • master
    배포 가능한 상태의 코드를 유지하는 브랜치이다.

  • develop
    다음 릴리즈를 위한 개발 작업이 진행되는 브랜치이다.
    운영 배포 후 master 브랜치로 merge 한다.

  • feature
    새로운 기능 개발을 위해 develop 브랜치로부터 분기되는 브랜치이다.

  • release
    다음 버전 릴리즈를 준비하는 데 사용되는 브랜치이다.
    develop 브랜치로부터 분기되며, 준비가 완료되면 master와 develop 브랜치에 병합된다.

  • hotfix
    배포된 버전에서 발생한 긴급한 버그를 수정하기 위한 브랜치이다.
    master 브랜치로부터 분기되며, 수정 후 master와 develop 브랜치에 병합된다.

 
 

3. GitHub Flow

GitHub Flow 모델은 빠르고 지속적인 배포를 목표로 하며, master 브랜치 하나와 기능 개발을 위한 브랜치들만을 사용한다.
GitHub Flow는 복잡성을 최소화하고, 모든 변경 사항을 빠르게 배포하는 데 초점을 맞춘다.
 

 
아래는 브랜치별 부여된 규칙이다.

  • master
    항상 배포 가능한 상태를 유지하는 브랜치이다.

  • feature
    새로운 기능 개발이나 버그 수정 작업을 위해 master 브랜치로부터 분기되는 브랜치이다.
    작업 완료 후 master 브랜치에 직접 병합하고 배포한다.

 

4. 어떤 전략 모델을 사용해야 할까

  • Git Flow
    복잡한 프로젝트, 여러 개발자가 참여하는 큰 규모의 팀, 또는 정기적인 릴리즈 주기를 가진 프로젝트에 적합하다.
    Git Flow는 릴리즈 준비와 유지 보수를 체계적으로 관리할 수 있도록 돕는다.

  • GitHub Flow
    소규모에서 중규모의 팀, 빠른 배포와 지속적인 통합을 목표로 하는 프로젝트에 적합하다.
    GitHub Flow는 간단하고 유연한 접근 방식을 제공하여, 신속한 개발과 배포를 가능하게 한다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함