home / skills / pluginagentmarketplace / custom-plugin-devops / 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-controlReview the files below or copy the command above to add this skill to your agents.
---
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
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.
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 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.