home / skills / pluginagentmarketplace / custom-plugin-devops / version-control

version-control skill

/skills/version-control

This skill helps you manage Git version control and collaboration workflows, improving code quality and deployment efficiency across teams.

npx playbooks add skill pluginagentmarketplace/custom-plugin-devops --skill version-control

Review the files below or copy the command above to add this skill to your agents.

Files (8)
SKILL.md
911 B
---
name: version-control
description: Git version control, branching strategies, GitHub/GitLab workflows, and collaborative development
sasmp_version: "1.3.0"
bonded_agent: 05-cicd-automation
bond_type: PRIMARY_BOND
---

# Version Control Skill

## MANDATORY
- Git fundamentals (init, clone, commit, push, pull)
- Branching strategies (GitFlow, trunk-based, feature branches)
- GitHub/GitLab workflows and collaboration
- Pull/Merge request best practices
- Conflict resolution techniques

## OPTIONAL
- Git hooks and automation
- Signed commits and GPG
- Monorepo vs polyrepo strategies
- Git LFS for large files
- Advanced rebasing and cherry-picking

## ADVANCED
- Custom Git workflows for enterprise
- Migration between VCS platforms
- Git internals and plumbing commands
- Submodules and subtrees
- Git performance optimization

## Assets
- See `assets/git-workflow.yaml` for branching strategy templates

Overview

This skill teaches practical Git version control, branching strategies, and collaborative workflows for teams building and deploying software. It covers core Git operations, pull/merge request best practices, conflict resolution, and platform-specific workflows for GitHub and GitLab. The goal is reliable collaboration, faster reviews, and safer releases.

How this skill works

The skill inspects repository state, recommends branch patterns, and guides users through commit, push, pull, rebase, and merge operations. It provides step-by-step guidance on creating and managing branches, preparing pull/merge requests, and resolving conflicts. Advanced modules advise on hooks, signed commits, large-file support, and performance tuning.

When to use it

  • Onboard new contributors to a project's Git workflow.
  • Define or standardize branching strategy across a team or org.
  • Prepare and review pull/merge requests before merging to mainline.
  • Resolve complex merge conflicts or history cleanup with rebasing.
  • Plan migration between Git hosting platforms or repository structures.

Best practices

  • Make small, focused commits with clear messages and atomic changes.
  • Use a consistent branching model (e.g., GitFlow, trunk-based or feature branches) aligned to release cadence.
  • Enforce code review and CI checks on pull/merge requests before merging.
  • Prefer fast-forward or squash merges for cleaner history when appropriate.
  • Use signed commits for high-security workflows and Git LFS for large binaries.

Example use cases

  • Set up a trunk-based workflow for continuous delivery with short-lived feature branches.
  • Create a pull request checklist that enforces tests, linting, and documentation updates.
  • Resolve a three-way merge conflict across multiple feature branches with guided rebase.
  • Implement client-side hooks to run linters and unit tests before committing.
  • Design an enterprise Git workflow that integrates release branches and hotfix procedures.

FAQ

When should I rebase vs merge?

Rebase is useful to keep a linear history and update a feature branch with upstream changes; merge preserves true merge commits and is safer for public/shared branches. Prefer rebasing for local cleanup, merging for shared history.

How do I avoid large binary files bloating the repo?

Use Git LFS to track large files, store them outside regular Git objects, and add .gitattributes rules. Avoid committing generated or build artifacts.