# Git Workflow

> Git workflow with worktrees and conventional commits.

- Skill: `aiskillstore/git-workflow-8` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add aiskillstore/git-workflow-8`
- Raw SKILL.md: https://api.skillmd.com/api/skills/aiskillstore/git-workflow-8/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: aiskillstore (https://skillmd.com/u/aiskillstore)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/aiskillstore/git-workflow-8

---


# Git Workflow

## Branch Naming

```
feature/{issue}-{slug}   # New features
fix/{issue}-{slug}       # Bug fixes
refactor/{issue}-{slug}  # Code refactoring
docs/{issue}-{slug}      # Documentation
test/{issue}-{slug}      # Test additions
```

Examples:
- `feature/42-user-authentication`
- `fix/57-login-redirect-loop`
- `refactor/63-extract-api-client`

## Conventional Commits

```
feat: add user authentication
fix: resolve login redirect loop
refactor: extract API client
docs: update README with setup instructions
test: add unit tests for auth service
chore: update dependencies
```

With scope:
```
feat(auth): add OAuth2 support
fix(api): handle rate limit errors
refactor(ui): extract button component
```

Breaking changes:
```
feat!: change authentication API
feat(auth)!: remove password login
```

## Worktrees

```bash
# Create worktree for feature
git worktree add ../worktrees/feature-42-auth -b feature/42-auth

# List worktrees
git worktree list

# Remove worktree when done
git worktree remove ../worktrees/feature-42-auth

# Prune stale worktrees
git worktree prune
```

## Workflow Steps

### 1. Create Issue
```bash
gh issue create --title "Add user authentication" --body "..."
# Note the issue number (e.g., #42)
```

### 2. Create Branch in Worktree
```bash
git worktree add ../worktrees/feature-42-auth -b feature/42-auth
cd ../worktrees/feature-42-auth
```

### 3. Develop
```bash
# Make changes...
git add .
git commit -m "feat(auth): add login form component"
git commit -m "feat(auth): add authentication API"
git commit -m "test(auth): add unit tests for auth"
```

### 4. Push and Create PR
```bash
git push -u origin feature/42-auth
gh pr create --title "feat: add user authentication" --body "Closes #42"
```

### 5. Cleanup After Merge
```bash
cd ..  # Back to main repo
git worktree remove ../worktrees/feature-42-auth
git branch -d feature/42-auth
```

## Rebase Workflow

```bash
# Keep branch up to date with main
git fetch origin
git rebase origin/main

# Interactive rebase to clean up commits
git rebase -i origin/main
```

## Stashing

```bash
# Stash changes
git stash push -m "WIP: auth feature"

# List stashes
git stash list

# Apply and drop
git stash pop

# Apply specific stash
git stash apply stash@{1}
```

## Useful Aliases

```bash
# .gitconfig
[alias]
  co = checkout
  br = branch
  ci = commit
  st = status
  wt = worktree
  lg = log --oneline --graph --decorate
  last = log -1 HEAD
  unstage = reset HEAD --
```

## Protected Branch Rules

Main branch should have:
- Require pull request reviews
- Require status checks to pass
- Require linear history
- Do not allow force pushes

