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 브랜치에 각각 머지해야함.⭐️
참고자료