[TIL] Git 브랜치 전략 (feat. Git flow)

👉🏼 KIM·2023년 5월 12일
0

TIL

목록 보기
1/9
post-thumbnail

Git flow는 Git을 이용한 소프트웨어 개발 방법론 중 하나로, 브랜치를 이용하여 개발 과정을 관리하는 방법이다. 이 방법은 브랜치의 종류와 그 흐름을 미리 정의하여 사용함으로써, 개발 과정에서 발생하는 문제를 최소화하고 효율적인 협업을 유연하게 하는 방법론이다.


Git flow에서 사용하는 브랜치는 크게 5가지로 나눌 수 있다.

위 순서들은 아래쪽으로 갈수록 포괄적인 가지이며, master branch를 병합할 경우 아래쪽에 있는 hotfix 등 모든 가지들에 있는 커밋들도 병합하도록 구성하게 된다.
5가지 중, 항시 유지되는 메인 브랜치 master, develop 2가지와 merge 되면, 사라지는 보조 브랜치 feature, release, hotfix 3가지로 구성된다.

feature > develop > release > hotfix > master

1. Master/Main

  • 메인브랜치로 불린다.
  • 실제 배포되는 버전을 관리하는 브랜치
  • 무조건 안정적이여야 하기 때문에 커밋이 일어나지 않는다.
  • 모든 변경사항은 다른 브랜치에서 개발되어야 한다.
  • 최종수정본의 역할을 한다.

2. Develop

  • 새로운 기능 개발을 하기 위한 개발 브랜치이다.
  • Master 브랜치에서 시작
  • 개발을 할때 pull 받아야 하는 브랜치
  • 개발을 진행중이기에 여러 버그가 존재한다.
  • Feature branch를 따야하는 곳이다.

3. Feature branches

  • 새로운 기능 개발 위해 사용되는 실험실이라고 생각하면 된다.
  • Develop 브랜치에서 시작
  • 개발을 하다가 망하면 버려도 상관없다.( 다시 dev에서 따면 됨 )
  • 브랜치 하나당 기능 하나를 기준으로 한다.
  • dev에서 다같이 개발하면 꼬일 수 있어서 사용하는 독립 공간이다.
  • 기능 개발이 완료되면 Develop 브랜치에 머지하기
  • 보통 개발자 저장소에만 있는 브랜치고, origin에는 push하지 않는다.

4. Release branches

  • 배포를 위한 브랜치
  • Develop 브랜치에서 시작
  • 버그만 수정하기 (릴리즈에서 개발을 하면 지옥을 맛볼 수 있다고 함)
  • ⭐️ Master 브랜치와 Develop 브랜치에 각각 머지해야함.⭐️

    Dev는 버그가 존재하기 때문에 머지를 해서 업데이트를 해줘야 한다. 머지 안하고 추후에 다른 기능 개발을 할때 수정이 안된 브랜치에서 작업할 수 있기 때문이다!

5. Hotfix

  • 급하게 수정되어야 하는 이슈를 위한 브랜치
  • Master 브랜치에서 시작
  • 버그/기능
  • 버그를 해결하면 보통 제거하는 일회성이다.
  • 릴리즈와 마찬가지로 ⭐️ Master 브랜치와 Develop 브랜치에 각각 머지해야함.⭐️

참고자료

profile
프론트는 순항중 ¿¿

0개의 댓글