[Github/깃헙] 깃 브랜치 전략세우기 - Gitflow/Githubflow
2024. 8. 21. 21:20ㆍGithub
Git 브랜치 전략
개발 과정에서 코드 관리를 체계적으로 하기 위해 여러 브랜치(branch)를 사용해
작업을 분리하고 병합하는 방법입니다.
그 중에서 Gitflow와 GitHub Flow는 널리 사용되는 두 가지 브랜치 전략입니다.
Gitflow (Git Flow)
Gitflow는 Vincent Driessen이 제안한 브랜치 전략으로, 대규모 프로젝트에서 효율적으로 개발 프로세스를 관리할 수 있도록 돕습니다. Gitflow는 여러 개의 브랜치를 사용해 기능 개발, 버그 수정, 릴리즈, 배포 등의 작업을 분리하여 진행합니다.
주요 브랜치
- Main (또는 Master): 배포 가능한 상태의 코드를 관리하는 브랜치로, 최종적으로 사용자에게 전달될 코드를 담고 있습니다.
- Develop: 새로운 기능을 개발하는 브랜치입니다. 각 기능(feature)은 develop 브랜치에서 파생된 별도의 브랜치에서 개발되며, 완료 후 다시 develop 브랜치에 병합됩니다.
보조 브랜치
- Feature 브랜치: 특정 기능을 개발하는 데 사용되는 브랜치입니다. develop 브랜치에서 파생되어 기능이 완성되면 develop 브랜치로 병합됩니다.
- Release 브랜치: 배포를 준비하는 브랜치입니다. develop 브랜치에서 파생되며, 여기서 버그 수정 및 최종 조정을 거친 후 main과 develop 브랜치로 병합됩니다.
- Hotfix 브랜치: 프로덕션에서 발생한 긴급한 버그를 수정하는 브랜치입니다. main 브랜치에서 파생되어 버그 수정 후 main과 develop 브랜치로 병합됩니다.
Gitflow의 장점
- 체계적인 브랜치 관리로 대규모 프로젝트에 적합
- 릴리즈, 핫픽스 등의 작업을 명확히 분리하여 진행할 수 있음
Gitflow의 단점
- 브랜치가 많아 관리가 복잡해질 수 있음
- 소규모 프로젝트나 CI/CD(Continuous Integration/Continuous Deployment)를 중시하는 환경에서는 오히려 비효율적일 수 있음
GitHub Flow
GitHub Flow는 GitHub에서 제안한 보다 단순한 브랜치 전략입니다. 이 전략은 특히 CI/CD 환경에서 빠르고 효율적으로 작업을 진행하는 데 중점을 둡니다.
GitHub Flow의 기본 원칙
- Main (또는 Master) 브랜치: 항상 배포 가능한 상태의 코드를 유지합니다.
- Feature 브랜치: 새로운 기능이나 버그 수정을 위해 main 브랜치에서 파생된 브랜치입니다. 작업이 완료되면 Pull Request(PR)를 통해 코드 리뷰를 거치고, main 브랜치에 병합됩니다.
- PR 기반의 워크플로우: 기능 브랜치는 언제든지 PR을 통해 병합을 요청할 수 있으며, 코드 리뷰와 테스트를 거쳐 main 브랜치로 병합됩니다. 병합이 완료되면 곧바로 배포가 이루어질 수 있습니다.
GitHub Flow의 장점
- 간단하고 직관적인 브랜치 관리
- 빠른 배포와 지속적인 통합에 최적화되어 있음
- 적은 수의 브랜치로 효율적인 작업 가능
GitHub Flow의 단점
- 대규모 프로젝트나 복잡한 릴리즈 관리가 필요한 환경에서는 다소 제한적일 수 있음
- 안정적인 버전을 유지하기 위한 별도의 브랜치가 없기 때문에, 큰 릴리즈 준비 시 복잡해질 수 있음
Gitflow는 복잡하고 대규모의 프로젝트에 적합하며,
명확한 브랜치 관리와 릴리즈 프로세스를 필요로 하는 경우에 유용합니다.
GitHub Flow는 간단하고 빠른 배포가 중요한 프로젝트에 적합하며,
CI/CD를 활용하는 환경에서 효율적으로 사용할 수 있습니다.
프로젝트의 성격, 규모, 팀의 협업 방식 등에 따라 적합한 브랜치 전략을 선택하는 것이 중요합니다.
'Github' 카테고리의 다른 글
[Github/깃헙] GitKraken(깃크라캔)에서 Githubflow 사용하기 (0) | 2024.08.21 |
---|---|
[Github/깃헙] workflows - item의 상태가 변하면 자동으로 Status도 변화되도록 지정하기 (0) | 2024.08.20 |
[GitHub/깃헙] Projects 사용방법 - Kanban 스타일/스프린트 뷰 추가하기 (0) | 2024.08.18 |