Claude-skill-registry git-workflow-strategy
Master Git workflows including GitFlow, GitHub Flow, Trunk-Based Development. Configure branches, merge strategies, and collaboration patterns for team environments.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/git-workflow-strategy" ~/.claude/skills/majiayu000-claude-skill-registry-git-workflow-strategy && rm -rf "$T"
manifest:
skills/data/git-workflow-strategy/SKILL.mdsource content
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