git-workflow-strategy

安装量: 139
排名: #6153

安装

npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill git-workflow-strategy

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

  1. 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

  1. 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

  1. 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

  1. 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

  1. Merge Strategy Script

!/bin/bash

merge-with-strategy.sh

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

if [ -z "$BRANCH" ]; then echo "Usage: ./merge-with-strategy.sh [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

  1. 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 Git Branching Strategies GitHub Flow Guide A Successful Git Branching Model Trunk Based Development

返回排行榜