Branch models
브랜치 전략이란 여러 개발자가 1개의 저장소를 사용하는 환경을 효과적으로 활용하기 위한 개념. 브랜치 생성, 병합 등의 git 구조를 활용, 효율적으로 소스를 관리하고 협업을 원활하게 할 수 있도록 도와줌.
브랜치 전략은 Git flow, GitLab flow, Github flow 3개로 보통 사용
git flow
- 각 단계가 명확히 구분되어 배포주기가 주기적인 서비스에 유리. but 복잡.
github flow
- 브랜치 모델의 단순화.
CI 의존성이 높고, pull request가 없으면 실수에 대처가 힘듦
gitlab flow
- deploy, issue에 대응을 하기 쉽도록 한 모델
협업
Forking Workflow
- fork를 통해 팀원들 각자의 개인 저장소를 따로 가지고 프로젝트를 진행.
- 팀원들은 각자의 저장소에서 자유롭게 작업 실시.
- 팀원의 작업 내용은 Pull requests를 통해 팀장의 확인 후 반영.
- 팀장 저장소의 권한은 팀장만 가지고 있으면서 다른 사람의 커밋을 프로젝트에 적용 가능.
- 팀장이 코드를 확인하고 merge 실시, 그렇기에 안전한 협업 가능.
- opensource project에서 많이 사용.
조직 설정 및 초기화 (팀장)
프로젝트 저장소 생성:
- 조직 생성: 팀장은 organization 생성. 이는 팀의 프로젝트와 멤버를 중앙에서 관리할 수 있는 공간
- 팀원 초대 및 역할 할당: 팀장은 팀원들을 조직에 초대하고, 필요에 따라 다양한 역할과 권한을 할당.
- 프로젝트 저장소 생성: organization 내에 하나 이상의 repo 생성. 프로젝트를 위한 중앙 저장소 역할
issue task 생성하여 위와 같이 수행 진행과정 공유 가능
일상적인 작업 (팀원)
- 저장소 포크 또는 클론: 팀원들은 프로젝트 repo를 자신의 계정으로 포크& 클론 실시
- 새로운 브랜치 생성: 각 작업 항목에 대해 팀원들은 새로운 브랜치를 생성. 이 브랜치는 특정 기능이나 버그 수정에 대한 작업을 분리하기 위함.
- 작업 실행 및 커밋: 팀원들은 자신의 브랜치에서 작업을 수행하고, 변경 사항을 커밋.
- 풀 리퀘스트 생성: 작업이 완료되면, 팀원들은 중앙 저장소에 풀 리퀘스트를 생성. 이는 코드 리뷰를 위한 요청.
코드 리뷰 및 병합 (팀장 또는 지정된 리뷰어)
- 코드 리뷰: 팀장 또는 지정된 리뷰어들이 풀 리퀘스트를 검토하고, 필요에 따라 피드백을 제공.
- 풀 리퀘스트 승인 및 병합:리뷰 과정을 거쳐 문제가 없다고 판단되면, 팀장 또는 리뷰어는 풀 리퀘스트를 승인하고 main 브랜치에 병합.
후속 조치 및 유지보수 (팀장 및 팀원)
- 문제 추적 및 관리: 프로젝트의 이슈를 추적하고, 필요에 따라 새로운 이슈를 생성하거나 기존 이슈를 업데이트.
- 지속적인 개선: 프로젝트는 지속적으로 개선되며, 새로운 기능 추가나 버그 수정 등의 작업 반복.