# Git Flow

> Standard Git Flow branching model and lifecycle management strategy. Trigger: "create release", "hotfix", "branching strategy", "git flow".

- Skill: `odjaramillo/git-flow-2` (Agent Skill)
- Install (CLI): `npx skillmds@latest add odjaramillo/git-flow-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/odjaramillo/git-flow-2/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: Apache-2.0
- Author: odjaramillo (https://skillmd.com/u/odjaramillo)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/odjaramillo/git-flow-2

---


# Git Flow Strategy

## When to Use
- Deciding which branch to base work on.
- Creating a new Release or Hotfix.
- Merging strategies (Squash vs Merge Commit).

## 1. Branching Model

| Branch | Source | Merge Into | Lifespan | Purpose |
|--------|--------|------------|----------|---------|
| `main` | - | - | Infinite | Production-ready code. Stable. |
| `develop` | `main` | `main` | Infinite | Integration branch for next release. |
| `feature/*` | `develop` | `develop` | Short | New features (e.g., `feature/login-page`). |
| `release/*` | `develop` | `develop`, `main`| Medium | Release prep (e.g., `release/v1.0.0`). |
| `hotfix/*` | `main` | `develop`, `main`| Very Short| Production critical fixes (e.g., `hotfix/crash`). |

## 2. Feature Development

1.  **Start:** Update `develop` and branch off.
    ```bash
    git checkout develop && git pull origin develop
    git checkout -b feature/my-feature
    ```
2.  **Work:** Commit changes. Use `github` skill templates for PRs.
3.  **Finish:** PR into `develop`. Squash merge recommended.

## 3. Release Process

1.  **Start:** Branch off `develop` when features are frozen.
    ```bash
    git checkout develop
    git checkout -b release/v1.2.0
    ```
2.  **Work:** Bump versions, update changelogs, fix bugs. NO NEW FEATURES.
3.  **Finish:**
    - Merge into `main` (Tag this commit).
    - Merge into `develop` (Back-propagate fixes).
    - Delete `release/v1.2.0` branch.

## 4. Hotfixes

1.  **Start:** Branch off `main` (Production).
    ```bash
    git checkout main
    git checkout -b hotfix/critical-bug
    ```
2.  **Work:** Fix the critical bug. Minimal changes.
3.  **Finish:**
    - Merge into `main` (Tag this commit).
    - Merge into `develop`.
    - Delete `hotfix` branch.

## 5. Protocols
- **Never commit directly to `main` or `develop`.**
- **Keep history clean.** Use interactive rebase before PRs.
- **Tags are immutable.** Once pushed, do not change.

