Claude Code Plugins

Community-maintained marketplace

Feedback

git-workflow-strategy

@aj-geddes/useful-ai-prompts
4
0

Master Git workflows including GitFlow, GitHub Flow, Trunk-Based Development. Configure branches, merge strategies, and collaboration patterns for team environments.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name git-workflow-strategy
description Master Git workflows including GitFlow, GitHub Flow, Trunk-Based Development. Configure branches, merge strategies, and collaboration patterns for team environments.

Git Workflow Strategy

Overview

Establish efficient Git workflows that support team collaboration, code quality, and deployment readiness through structured branching strategies and merge patterns.

When to Use

  • Team collaboration setup
  • Release management
  • Feature development coordination
  • Hotfix procedures
  • Code review processes
  • CI/CD integration planning

Implementation Examples

1. GitFlow Workflow Setup

# Initialize GitFlow
git flow init -d

# Start a feature
git flow feature start new-feature
# Work on feature
git add .
git commit -m "feat: implement new feature"
git flow feature finish new-feature

# Start a release
git flow release start 1.0.0
# Update version numbers, changelog
git add .
git commit -m "chore: bump version to 1.0.0"
git flow release finish 1.0.0

# Create hotfix
git flow hotfix start 1.0.1
# Fix critical bug
git add .
git commit -m "fix: critical bug in production"
git flow hotfix finish 1.0.1

2. GitHub Flow Workflow

# Clone and setup
git clone https://github.com/org/repo.git
cd repo

# Create feature branch from main
git checkout -b feature/add-auth-service
git add .
git commit -m "feat: add authentication service"
git push origin feature/add-auth-service

# Push changes, create PR, request reviews
# After approval and CI passes, merge to main
git checkout main
git pull origin main
git merge feature/add-auth-service
git push origin main

# Deploy and cleanup
git branch -d feature/add-auth-service
git push origin -d feature/add-auth-service

3. Trunk-Based Development

# Create short-lived feature branch
git checkout -b feature/toggle-feature
# Keep commits small and atomic
git add specific_file.js
git commit -m "feat: add feature flag configuration"

# Rebase on main frequently
git fetch origin
git rebase origin/main

# Create PR with small changeset
git push origin feature/toggle-feature

# After PR merge, delete branch
git checkout main
git pull origin main
git branch -d feature/toggle-feature

4. Git Configuration for Workflows

# Configure user
git config --global user.name "Developer Name"
git config --global user.email "dev@example.com"

# Set default branch
git config --global init.defaultBranch main

# Configure merge strategy
git config --global pull.ff only
git config --global merge.ff false

# Enable rerere (reuse recorded resolution)
git config --global rerere.enabled true

# Configure commit message format
git config --global commit.template ~/.gitmessage

# Setup branch protection rules
git config --global branch.main.rebase true
git config --global branch.develop.rebase true

5. Branch Naming Conventions

# Feature branches
git checkout -b feature/user-authentication
git checkout -b feature/JIRA-123-payment-integration

# Bug fix branches
git checkout -b bugfix/JIRA-456-login-timeout
git checkout -b fix/null-pointer-exception

# Release branches
git checkout -b release/v2.1.0
git checkout -b release/2024-Q1

# Hotfix branches
git checkout -b hotfix/critical-security-patch
git checkout -b hotfix/v2.0.1

# Chore branches
git checkout -b chore/update-dependencies
git checkout -b chore/refactor-auth-module

6. Merge Strategy Script

#!/bin/bash
# merge-with-strategy.sh

BRANCH=$1
STRATEGY=${2:-"squash"}

if [ -z "$BRANCH" ]; then
    echo "Usage: ./merge-with-strategy.sh <branch> [squash|rebase|merge]"
    exit 1
fi

# Update main
git checkout main
git pull origin main

case "$STRATEGY" in
    squash)
        git merge --squash origin/$BRANCH
        git commit -m "Merge $BRANCH"
        ;;
    rebase)
        git rebase origin/$BRANCH
        ;;
    merge)
        git merge --no-ff origin/$BRANCH
        ;;
    *)
        echo "Unknown strategy: $STRATEGY"
        exit 1
        ;;
esac

git push origin main
git push origin -d $BRANCH

7. Collaborative Workflow with Code Review

# Developer creates feature
git checkout -b feature/search-optimization
# Make changes
git add .
git commit -m "perf: optimize search algorithm"
git push origin feature/search-optimization

# Create pull request with detailed description
# Reviewer reviews and suggests changes

# Developer makes requested changes
git add .
git commit -m "refactor: improve search efficiency per review"
git push origin feature/search-optimization

# After approval
git checkout main
git pull origin main
git merge feature/search-optimization
git push origin main

# Cleanup
git branch -d feature/search-optimization
git push origin -d feature/search-optimization

Best Practices

✅ DO

  • Choose workflow matching team size and release cycle
  • Keep feature branches short-lived (< 3 days)
  • Use descriptive branch names with type prefix
  • Require code review before merging to main
  • Enforce protection rules on main/release branches
  • Rebase frequently to minimize conflicts
  • Write atomic, logical commits
  • Keep commit messages clear and consistent

❌ DON'T

  • Commit directly to main branch
  • Create long-lived feature branches
  • Use vague branch names (dev, test, temp)
  • Merge without code review
  • Mix multiple features in one branch
  • Force push to shared branches
  • Ignore failing CI checks
  • Merge with merge commits in TBD

Branch Protection Rules (GitHub)

# .github/branch-protection-rules.yml
branches:
  main:
    required_status_checks: true
    required_code_review: true
    dismiss_stale_reviews: true
    require_branches_up_to_date: true
    enforce_admins: true
    required_signatures: false

Resources