EF projects use a lightweight Gitflow workflow to keep active development, hotfixes, and production-ready code separated.
prod: production-ready code. Approved staging work and hotfix branches are merged intoprod.staging: integration branch for completed work that is ready for the next production update.
feature/<issue-number>-<short-description>: new features, improvements, and most routine work. Branch fromstagingand merge back intostaging.bugfix/<issue-number>-<short-description>: non-urgent fixes found during development. Branch fromstagingand merge back intostaging.hotfix/<issue-number>-<short-description>: urgent production fixes. Branch fromprod, then merge into bothprodandstaging.docs/<short-description>: documentation-only changes. Branch fromstagingunless the documentation fix must go directly into a production or hotfix.
Use lowercase branch names with hyphens between words.
Examples:
git switch staging
git pull origin staging
git switch -c feature/123-add-mentor-searchgit switch staging
git pull origin staging
git switch -c bugfix/124-fix-profile-save-errorgit switch staging
git pull origin staging
git switch -c docs/update-contribution-guidegit switch prod
git pull origin prod
git switch -c hotfix/456-fix-login-redirect- Pick or create a GitHub Issue.
- Make sure the issue has an owner, project, milestone when applicable, and clear acceptance criteria.
- Create a branch from
staging. - Commit focused changes to that branch.
- Push the branch and open a pull request into
staging. - Link the pull request to the issue.
- Request review and keep the pull request updated until it is approved.
- Merge after required checks and approvals pass.
When staging is ready for production, open a pull request from staging into
prod. After approval, checks, and merge, create a release tag on prod.
Example:
git switch prod
git pull origin prod
git tag v2026.07.0
git push origin v2026.07.0Use hotfix branches only for urgent production issues.
- Create a GitHub Issue describing the production problem.
- Create
hotfix/<issue-number>-<short-description>fromprod. - Open a pull request into
prod. - After approval and checks, merge into
prodand deploy. - Merge
prodback intostaging.
- Feature, bugfix, and routine docs branches target
staging. - Production updates target
prodfromstaging. - Hotfix branches target
prod, then merge back intostaging.
Do not commit directly to prod or staging.