version-control

Apply trunk-based development and conventional commits with GitHub integration.

34|7|Updated Nov 29, 2025
One-click install
npx skills add https://github.com/jkitchin/skillz --skill version-control
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: version-control
Source: https://github.com/jkitchin/skillz/tree/main/skills/development/version-control
Command: npx skills add https://github.com/jkitchin/skillz --skill version-control

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) and assets (resource) components.

What problem does it solve?

This Skill provides guidance on professional Git workflows, trunk-based development, conventional commits, PRs, branch management, and troubleshooting to keep projects healthy and deployable.

Core Features & Use Cases

  • Trunk-Based Development: Maintain a deployable main branch with short-lived feature branches.
  • Conventional Commits: Structured, semantic commits for clear history.
  • GitHub Workflow: PR reviews, branch protection, CI/CD with GitHub Actions.
  • Comprehensive Reference: Access to notes on commands, troubleshooting, and advanced topics.

Quick Start

Follow daily workflow examples: update main, create a feature branch feat/..., commit with type(scope): message, rebase against main, push and create PR.

Frequently Asked Questions about version-control

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

FAQPage Schema
How do I set up a trunk-based development workflow with Git?

Trunk-based development maintains a deployable main branch with short-lived feature branches. Create feature branches from main, commit changes with conventional commit messages, then merge back via pull requests after review. This keeps your codebase stable and deployment-ready.

What's the best way to write commit messages in Git?

Conventional commits follow the format type(scope): message—for example, feat(auth): add login validation or fix(api): resolve timeout issue. This structured approach creates a clear, searchable commit history and enables automated changelog generation.

How do I handle merge conflicts when rebasing branches?

During a rebase, Git pauses at conflicting commits. Manually resolve conflicts in your editor, mark files as resolved with git add, then continue the rebase with git rebase --continue. For complex conflicts, you can abort with git rebase --abort and try a merge instead.

Can I automate Git workflows with GitHub Actions and branch protection?

Yes. Configure branch protection rules to require PR reviews and passing CI/CD checks before merging. Use GitHub Actions to run tests, lint code, and validate commit messages automatically on every push, enforcing workflow consistency across your team.

What's the difference between merge and rebase in Git?

Merge combines branches and preserves full history with a merge commit. Rebase replays your commits on top of another branch, creating a linear history. Rebase is cleaner for feature branches; merge is safer for shared branches and integrations.

How do I troubleshoot common Git and pull request issues?

Reference troubleshooting guidance for detached HEAD states, undoing commits, recovering deleted branches, and resolving stale branch conflicts. The Skill provides commands and recovery steps for frequent Git scenarios in daily development.