git-workflow-and-versioning

Structures git commits, branching, semantic versioning, and changelog practices for code changes.

1|Updated Mar 2, 2025
One-click install
npx skills add https://github.com/marjorg/setup --skill git-workflow-and-versioning-marjorg
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: git-workflow-and-versioning
Source: https://github.com/marjorg/setup/tree/main/home/.agents/skills/git-workflow-and-versioning
Command: npx skills add https://github.com/marjorg/setup --skill git-workflow-and-versioning-marjorg

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Code changes made without version control discipline become impossible to review, revert, or release safely. This Skill enforces atomic commits, short-lived branches, semantic versioning, and curated changelogs so every change stays manageable and traceable. ## Core Features & Use Cases - Atomic Commit Discipline: Enforces one logical change per commit with conventional commit messages (feat, fix, refactor, etc.) that explain the why, not just the what. - Trunk-Based Branching & Worktrees: Guides short-lived feature branches merged within 1-3 days and parallel work using git worktrees for concurrent agent sessions. - Release & Versioning Contract: Applies semantic versioning (MAJOR.MINOR.PATCH), annotated git tags as the source of truth, and human-readable changelogs grouped by impact. - Use Case: An AI agent finishes a messy working session with mixed changes. Use this Skill to split the work into clean atomic commits, write descriptive messages, open a reviewable PR, and tag a properly versioned release with a changelog entry. ## Quick Start Use the git-workflow-and-versioning skill to split my uncommitted changes into atomic commits and prepare a properly versioned release with a changelog entry.

Frequently Asked Questions about git-workflow-and-versioning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write good git commit messages?

Use the conventional commit format: a type prefix like feat, fix, refactor, or chore, followed by a short description, then a body explaining why the change was made. Messages should explain intent, not just restate what the diff shows.

How do I split a large uncommitted change into atomic commits?

Separate concerns first: keep formatting, refactoring, and feature changes in distinct commits. Each commit should do one logical thing, target roughly 100 lines, and pass tests independently before moving to the next slice.

What is trunk-based development vs gitflow?

Trunk-based development keeps main always deployable with short-lived feature branches merged within 1-3 days, while gitflow uses long-lived development branches. Trunk-based development correlates with high-performing teams in DORA research.

How do I choose between major, minor, and patch version bumps?

Bump major for breaking changes, minor for backward-compatible new functionality, and patch for backward-compatible bug fixes. When unsure whether a change is breaking, assume it is, since consumers may rely on observed behavior.

Can I use git worktrees for parallel development?

Yes, git worktree add creates separate directories each checked out to a different branch, letting multiple agents or developers work simultaneously without branch switching. Remove worktrees after merging to clean up.

Why should a changelog not be generated from git log?

Commit logs are written for developers, while changelogs are curated for consumers and grouped by impact: Added, Changed, Fixed, Deprecated, Removed, Security. Raw commit dumps bury what matters and miss user-facing context.