웹 개발 공부

개발 공부 ( Git Branch 전략 )

지금해냥 2023. 2. 3. 17:54

0. Branch란?

- 모든 버전 관리 시스템은 브랜치를 지원한다.

- 개발을 하다 보면 코드를 여러개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다.

 

1. GIT Branch 전략이란?

- 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow다

- 브랜치의 생성, 삭제, 병합 등 git의 유연한 구조를 활용해서, 각 개발자들의 혼란을 최대한 줄이며 다양한 방식으로

  소스를 관리하는 역할을 한다.

- 즉, 브랜치 생성에 규칙을 만들어서 협업을 유연하게 하는 방법론을 말한다.

 

2. Git-Branch 전략의 종류

1) Git - flow 전략

  • 5가지 브랜치 ( Master, Release, Develop, Hotfix, Feature )을 이용한 개발 모델
브랜치 설명
master 라이브 서버에 제품으로 출시되는 브랜치
develop 다음 출시 버전을 대비하여 개발하는 브랜치
feature 추가 기능 개발 브랜치. develop 브랜치로 merge
release 다음 버전 출시를 준비하는 브랜치. develop 브랜치를 release 브랜치로 옮긴 후 QA, 테스트 진행.
hotfix master 브랜치에서 발생한 버그를 수정하는 브랜
  • 동작원리
    1. master 브랜치에서 develop 브랜치를 분기
    2. 개발자들은 develop 브랜치를 기반으로 개발을 진행
    3. 기능 구현의 경우 develop 브랜치에서 feature (기능) 브랜치 분기
    4. 기능 구현된 feature 브랜치는 develop 브랜치에 merge
    5. 배포를 위한 준비과정으로 develop 브랜치에서 release 브랜치를 거쳐 검증 후 main브랜치 merge
    6. 배포한 버전에서 긴급하게 수정이 있을 경우 hotfix 브랜치를 생성하여 수정 후 개발중인 브랜치에 적용

2) Github - flow 전략

  • 개념
    1. Git-flow가 Github 에서 사용하기에는 복잡하다고 나온 브랜치 전략
    2. hoxfix 브랜치나 feature 브랜치 등 구분하지 않음
    3. 수시로 배포가 일어나며, CI와 배포가 자동화되어있는 프로젝트에 유용
  • 동작원리
    1. 자유롭게 브랜치 생성 (브랜치 하나로 유지되므로 브랜치명으로 의도를 명확하게 제공 )
    2. 개발 & 커밋 & 푸쉬 ( 커밋메세지를 이용하여 개발 의도 전달 )
    3. PR ( pull Request ) 생성
    4. 리뷰 & 토의 ( master 브랜치에 적용 여부를 상세히 리뷰와 토의 진행 필요 )
    5. 테스트 ( 라이브 서버 또는 테스트 환경에 배포하여 검증 )
    6. 최종 Merge를 통한 배

3) GitLab - flow 전략

  • 복잡한 Git-flow와 너무 간단한 GitHub-flow의 절충안
  • 동작원리
    1. Gitlab에는 Production 브랜치가 있는데, 이는 Gitflow의 Master브랜치역할
    2. Gitlab flow의 Master브랜치는 Production 브랜치로 병합
    3. production 브랜치는 오직 배포만을 담당
    4. pre-production 브랜치는 production 브랜치로 결과를 넘기기 전에 테스트를 수행하는 브랜치
    5. Production브랜치에서 릴리즈된 코드가 항상 프로젝트의 최신버전 상태를 유지해야할 필요가 없다는 장점

 

3. 정리

- 다양한 브랜치 전략을 용도에 맞게 사용하는 것이 중요

 

ex) 1개월  이상 긴 호흡으로 개발하여 주기적으로 배포, QA 및 테스트, hotfix 등을 수행할 수 있는 여력이 있으면 Git-flow

      수시로 릴리즈 되어야 할 필요가 있는 서비스를 지속적으로 테스트하고 배포하는 팀은 GitHub-flow

 

참조 :

https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

Git - 브랜치란 무엇인가

3.1 Git 브랜치 - 브랜치란 무엇인가 모든 버전 관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와

git-scm.com

https://techblog.woowahan.com/2553/

 

우린 Git-flow를 사용하고 있어요 | 우아한형제들 기술블로그

{{item.name}} 안녕하세요. 우아한형제들 배민프론트개발팀에서 안드로이드 앱 개발을 하고 있는 나동호입니다. 오늘은 저희 안드로이드 파트에서 사용하고 있는 Git 브랜치 전략을 소개하려고 합

techblog.woowahan.com

https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-github-flow-git-flow-%F0%9F%93%88-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EC%A0%84%EB%9E%B5

 

[GIT] 📈 깃 브랜치 전략 정리 - Github Flow / Git Flow

GIT 브랜치 전략 브랜치 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 저장소를 효과적으로 활용하기 위한 work-flow다. 브랜치의 생성, 삭제, 병합 등 git의 유연한 구조를 활용해서,

inpa.tistory.com

https://velog.io/@kw2577/Git-branch-%EC%A0%84%EB%9E%B5

 

Git branch 전략(Git-Flow, Github-Flow, Gitlab-Flow)

Branch란?브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념입니다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있습니

velog.io

 

LIST