Skip to main content

gitflow

Branching, merging, versioning, and release conventions for the Gitflow workflow, covering main/develop branches, feature/release/hotfix branches, semantic versioning, and pull request rules. Use when creating a branch, naming a branch, planning a release or hotfix, writing a commit message, or setting up branch protection for a repository that follows Gitflow.

소스 정보

저장소
Mindrally/skills
최근 소스 활동
2026년 9월 3일 15:58
감지된 SKILL.md 언어
영어
스타
264
포크
41

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
gitflow
description
Branching, merging, versioning, and release conventions for the Gitflow workflow, covering main/develop branches, feature/release/hotfix branches, semantic versioning, and pull request rules. Use when creating a branch, naming a branch, planning a release or hotfix, writing a commit message, or setting up branch protection for a repository that follows Gitflow.
# Gitflow This skill covers the Gitflow branching model: the two long-lived branches, the three supporting branch types, commit message conventions, semantic versioning, and the release and hotfix processes. ## Workflow for a Feature Change 1. **Sync develop** — Run `git checkout develop && git pull origin develop` so the feature branches from the latest development state. 2. **Create the feature branch** — Run `git checkout -b feature/123-user-authentication`, using the naming convention `feature/[issue-id]-descriptive-name`. 3. **Commit with conventional messages** — Use `type(scope): description` for every commit (see Commit Messages below). 4. **Rebase or merge develop in** — Before opening a PR, bring the branch up to date: `git fetch origin && git rebase origin/develop` (or merge, per team convention). 5. **Open a pull request into develop** — Require at least one approval and passing CI checks; never commit directly to `develop`. 6. **Merge and clean up** — After merge, delete the feature branch both locally and on the remote: `git branch -d feature/123-user-authentication && git push origin --delete feature/123-user-authentication`. ## Main Branches ### main (or master) - Contains production-ready code only. - Never commit directly to `main`. - Only accepts merges from `hotfix/*` branches or `release/*` branches. - Must be tagged with a version number after every merge (e.g. `git tag -a v1.2.0 -m "Release 1.2.0"`). ### develop - The main integration branch; contains the latest delivered development changes. - Source branch for all `feature/*` branches. - Never commit directly to `develop` — all changes land through pull requests. ## Supporting Branches ### feature/* - Branch from: `develop`. - Merge back into: `develop`. - Naming convention: `feature/[issue-id]-descriptive-name` (e.g. `feature/123-user-authentication`). - Must be up to date with `develop` before opening a PR. - Delete after merge. ### release/* - Branch from: `develop`. - Merge back into: `main` **and** `develop`. - Naming convention: `release/vX.Y.Z` (e.g. `release/v1.2.0`). - Scope is limited to bug fixes, documentation, and release-oriented tasks — no new features. - Delete after merge. ### hotfix/* - Branch from: `main`. - Merge back into: `main` **and** `develop`. - Naming convention: `hotfix/vX.Y.Z` (e.g. `hotfix/v1.2.1`). - Reserved for urgent production fixes only. - Delete after merge. ## Commit Messages Use Conventional Commits format: `type(scope): description`. | Type | Meaning | |---|---| | `feat` | New feature | | `fix` | Bug fix | | `docs` | Documentation changes | | `style` | Formatting, missing semicolons, etc. — no logic change | | `refactor` | Code restructuring without behavior change | | `test` | Adding or correcting tests | | `chore` | Maintenance tasks (build scripts, dependency bumps) | Example: ``` feat(auth): add refresh-token rotation fix(orders): prevent duplicate charge on retry chore(deps): bump lodash to 4.17.21 ``` ## Semantic Versioning Given a version `MAJOR.MINOR.PATCH`: - **MAJOR** — incremented for incompatible/breaking API changes. - **MINOR** — incremented for backwards-compatible new functionality. - **PATCH** — incremented for backwards-compatible bug fixes. ## Pull Request Rules 1. All changes must go through pull requests — no exceptions for `main` or `develop`. 2. Minimum of one required approval before merge. 3. All CI checks must pass. 4. No direct commits to protected branches (`main`, `develop`). 5. The branch must be up to date with its target before merging. 6. Delete the branch after merge (both local and remote copies). ## Branch Protection Rules Apply to both `main` and `develop`: - Require pull request reviews before merging. - Require status checks to pass before merging. - Require branches to be up to date before merging. - Include administrators in the restrictions (no bypassing rules with elevated permissions). - No force pushes. - No branch deletions. ## Release Process 1. Create a release branch from `develop`: `git checkout -b release/v1.2.0 develop`. 2. Bump version numbers in package manifests / changelogs. 3. Fix any release-specific issues (docs, last-minute bugs) — do not add new features. 4. Open a PR from the release branch into `main`. 5. After merge to `main`: - Tag the release: `git tag -a v1.2.0 -m "Release 1.2.0"` and push the tag. - Merge `main` back into `develop` so develop has the release commit and tag. - Delete the release branch. ## Hotfix Process 1. Create a hotfix branch from `main`: `git checkout -b hotfix/v1.2.1 main`. 2. Fix the production issue with the smallest possible change. 3. Bump the patch version. 4. Open a PR from the hotfix branch into `main`. 5. After merge to `main`: - Tag the release: `git tag -a v1.2.1 -m "Hotfix 1.2.1"` and push the tag. - Merge `main` back into `develop` so the fix isn't lost in the next release. - Delete the hotfix branch.
GitHub에서 보기