Skip to content

🚀 Git Development Workflow Standards

A comprehensive guide for clean, traceable, and professional Git workflows

(Mono-Repo Project)


Overview

This document defines standardized naming conventions for branches, commits, and pull requests.

The goal is to:

  • Improve clarity and traceability
  • Link work clearly to task IDs (Azure/Asana)
  • Make code reviews faster
  • Keep Git history clean and professional

Branch Naming Convention

Dev Branch Format

bash
<type>(<stack-id>)/<task-id>-<short-description>

Allowed Branch Types

TypePurpose
featureNew features
bugfixBug fixes (non-production)
hotfixCritical production fixes
refactorCode restructuring without behavior change
choreMaintenance tasks (dependencies, configs)
testTest-related work

Examples

bash
feature(fe)/p-777-admin-layout
feature(be)/p-700-subscription-api

Release Branch Format

bash
<type-release>(<stack-id>)/<date>

Release Types

TypePurpose
production-releaseProduction releases
staging-releaseStaging releases

Examples

bash
production-release(fe)/07-01-26
staging-release(be)/07-01-26

Branch Naming Rules

  • Use lowercase only
  • Use hyphens (-), never underscores
  • Keep descriptions short and meaningful
  • No spaces allowed

Commit Message Convention

Commit Format

bash
<type>(<task-id>): <short description>

Allowed Commit Types

TypePurpose
featNew feature
fixBug fixes
hotfixCritical production fixes
refactorCode restructuring without behavior change
choreMaintenance tasks (dependencies, configs)
testTest-related work
revertRevert previous changes

Examples

bash
feat(p-777): admin layout created
fix(p-777): build issue fixes
refactor(p-985): simplify auth middleware

Commit Rules

  • One logical change per commit
  • Use present tense (add, fix, update)
  • Start with lowercase (no capital letters)
  • No period at the end

Pull Request Convention

PR Title Format

🔹 Development PR

bash
[<stack-tag>] <type>(<task-id>): <clear summary>

Example:

bash
[FE] feat(P-1007): implement admin layout
[FS] feat(P-975): coupon feature

🔹 Production/Staging Release PR

bash
[<tag>] <date>: [<stack-tag>] [<task ids>]

Example:

bash
[PRODUCTION] 07/01/26: [FE] [p-1005, p-1002, p-979]
[STAGING] 07/01/26: [BE] [p-2001, p-2003, p-2010]

Release Tags

TagPurpose
[PRODUCTION]Production release PR
[STAGING]Staging release PR

GitHub Labels

Labels help classify and track Pull Requests efficiently based on status, scope, and deployment stage.

Label Categories

Status Labels

LabelPurpose
releasedPR already released to production or staging
pendingPR has unreleased commits

Deployment Labels

LabelPurpose
stagingIntended for staging deployment
productionIntended for production deployment

stack Labels

LabelPurpose
FEFrontend-related PR
BEBackend-related PR
FSFullstack-related PR

Quick Reference

Dev Branch Example

┌─────────────────────────────────────────────────────────────┐
│  Branch:  feature(fe)/p-777-admin-layout                    │
│  Commit:  feat(p-777): admin layout created                 │
│  PR:      [FE] feat(p-777): implement admin layout          │
│  Labels:  [FE] [released] [pending]                         │
└─────────────────────────────────────────────────────────────┘

Release Branch Example

┌─────────────────────────────────────────────────────────────┐
│  Branch:  production-release(fe)/07-01-26                   │
│  Commit:  feat(p-777): admin layout created                 │
│  PR:      [PRODUCTION] 07/01/26: [FE] [p-777, p-779]        │
│  Labels:  [FE] [production] [staging]                       │
└─────────────────────────────────────────────────────────────┘