- 모든 개발자는 하나의 메인 브랜치(
main또는trunk)를 기준으로 작업. - 오래 유지되는 여러 브랜치는 피하고, 짧은 브랜치만 허용.
- 트렁크에 머지된 커밋은 즉시 배포 가능해야 함.
- 빌드 상태와 테스트가 항상 통과하는지 확인.
- 작업 단위를 가능한 한 작게 쪼갤 것.
- 몇 시간 안에 트렁크에 머지하도록 작업.
- 오래 분기된 브랜치는 Merge Hell을 유발하므로 피함.
- 빌드 시간은 짧게 유지(최적: 5분 이하).
- 지속적 통합(CI)을 통해 커밋 시 자동 빌드 및 테스트.
- 빌드 실패 시 즉시 수정.
- 일반 개발은 트렁크에서 진행.
- 릴리스 브랜치는 필요할 때만 단기간 사용.
- 완성되지 않은 기능도 트렁크에 머지 가능.
- 기능 플래그로 기능 노출 여부를 제어.
- 분기(branch)는 가능하면 몇 시간 ~ 하루 내로 트렁크에 머지.
- 장기간 분기는 지양.