Git Branching Process
Branch types, workflow steps, and commit message conventions for the Deaku team.
Branch Types
mainmainProduction branch. Always deployable. Protected — requires PR with review.
Example: maindevelopdevelopIntegration branch. All feature branches merge here first for testing.
Example: developfeature/*featureNew features or enhancements. Branch from develop, merge back to develop.
Example: feature/video-hls-supportbugfix/*bugfixBug fixes discovered during development. Branch from develop.
Example: bugfix/chat-scroll-positionhotfix/*hotfixCritical production fixes. Branch from main, merge to both main and develop.
Example: hotfix/stripe-webhook-crashrelease/*releaseRelease preparation. Branch from develop, merge to main when ready.
Example: release/v2.3.0Development Workflow
1. Create a feature branch
Branch off from develop (or main for hotfixes) with a descriptive name.
$ git checkout develop$ git pull origin develop$ git checkout -b feature/my-feature2. Develop and commit
Make small, focused commits with clear messages. Run linting and type-checking locally.
$ git add .$ git commit -m "feat: add video HLS transcoding"$ pnpm lint && pnpm type-check3. Keep branch up to date
Regularly merge develop into your feature branch to avoid large conflicts.
$ git fetch origin$ git merge origin/develop4. Push and open a PR
Push to remote and open a pull request targeting develop. Fill in the PR template.
$ git push -u origin feature/my-feature# Open PR on GitHub targeting develop5. Code review
At least one team member reviews the PR. Address feedback with additional commits.
6. Merge to develop
Once approved, squash-merge into develop. The branch is automatically deleted.
7. Release to production
When develop is stable, create a release branch, run final QA, then merge to main.
$ git checkout -b release/v2.3.0 develop# Final testing and version bump$ git checkout main && git merge release/v2.3.0$ git tag v2.3.0Commit Message Conventions
We follow Conventional Commits. Each commit message starts with a type prefix.
| Prefix | Description | Example |
|---|---|---|
feat: | A new feature | feat: add video HLS transcoding |
fix: | A bug fix | fix: resolve chat scroll jump on new message |
refactor: | Code restructuring without behavior change | refactor: extract storage utils into shared package |
docs: | Documentation changes | docs: update API reference for video endpoints |
style: | Formatting, whitespace, etc. | style: fix Tailwind class ordering |
test: | Adding or updating tests | test: add visual regression tests for dashboard |
chore: | Build/tooling changes | chore: upgrade Turborepo to v2.3 |
perf: | Performance improvements | perf: lazy-load video player component |