git-workflow
SKILL.md
Git Workflow
Complete git workflow patterns: GitHub Flow branching, atomic commits, and recovery operations. Essential for maintaining clean, reviewable history.
Branch Naming Convention
# Feature branches (link to issue)
issue/<number>-<brief-description>
issue/123-add-user-auth
# When no issue exists
feature/<description>
fix/<description>
hotfix/<description>
Branch Rules:
mainis always deployable- Branch from
main, PR back tomain - Branches live < 1-3 days
- Delete branch after merge
Atomic Commit Checklist
[ ] Does ONE logical thing
[ ] Leaves codebase working (tests pass)
[ ] Message doesn't need "and" in title
[ ] Can be reverted independently
[ ] Title < 50 chars, body wraps at 72
Interactive Staging
# Stage changes hunk-by-hunk
git add -p
# Options:
# y - stage this hunk
# n - skip this hunk
# s - split into smaller hunks
# e - manually edit the hunk
# q - quit
# Review what's staged
git diff --staged # What will be committed
git diff # What won't be committed
Commit Patterns
# Separate concerns
git add -p && git commit -m "refactor: Extract database pool"
git add -p && git commit -m "feat(#456): Add query caching"
# Never combine unrelated changes
# BAD: "feat: Add auth and fix formatting"
# GOOD: Two separate commits
Recovery Quick Reference
The Safety Net
# ALWAYS check reflog first - it has everything
git reflog
# Shows ALL recent HEAD movements
# Even "deleted" commits live here for 90 days
Common Recovery Scenarios
| Scenario | Not Pushed | Already Pushed |
|---|---|---|
| Undo commit | git reset --soft HEAD~1 |
git revert HEAD |
| Wrong branch | cherry-pick + reset | cherry-pick + revert |
| Lost commits | git reset --hard HEAD@{N} |
N/A |
| Bad rebase | git rebase --abort or reflog |
reflog + force-with-lease |
Quick Recovery Commands
# Undo last commit, keep changes staged
git reset --soft HEAD~1
# Find lost commits
git reflog | grep "your message"
# Recover to previous state
git reset --hard HEAD@{1}
# Safe force push (feature branches only)
git push --force-with-lease
Standard Workflow
# 1. Start fresh
git checkout main && git pull origin main
git checkout -b issue/123-my-feature
# 2. Work with atomic commits
git add -p
git commit -m "feat(#123): Add User model"
# 3. Stay updated
git fetch origin && git rebase origin/main
# 4. Push and PR
git push -u origin issue/123-my-feature
gh pr create --fill
# 5. Cleanup after merge
git checkout main && git pull
git branch -d issue/123-my-feature
Anti-Patterns
Avoid:
- Long-lived branches (> 1 week)
- Merging main into feature (use rebase)
- Direct commits to main
- Force push to shared branches
- Commits that need "and" in message
- Committing broken code
Best Practices Summary
- Branch from main - Always start fresh
- Stage interactively - Use
git add -p - One thing per commit - If you say "and", split it
- Rebase, don't merge - Keep history clean
- Check reflog first - When something goes wrong
- Force-with-lease - Safer than force push
- Delete after merge - No stale branches
Related Skills
ork:commit- Create commits with conventional format and pre-commit validationgit-recovery- Quick recovery from common git mistakes using reflog operationsstacked-prs- Multi-PR development for large features with dependent PRsork:create-pr- Comprehensive PR creation with proper formatting
Key Decisions
| Decision | Choice | Rationale |
|---|---|---|
| Branching model | GitHub Flow | Simple single-branch workflow, main is always deployable |
| Merge strategy | Rebase over merge | Keeps history clean and linear, easier to bisect |
| Branch naming | issue/- | Links work to tracking, enables automation |
| Commit granularity | Atomic (one thing) | Independent revert, clear history, easier review |
| Force push | --force-with-lease only | Prevents overwriting others' work on shared branches |
Rules
Each category has individual rule files in rules/ loaded on-demand:
| Category | Rule | Impact | Key Pattern |
|---|---|---|---|
| Branch Protection | rules/branch-protection.md |
CRITICAL | Protected branches, required PR workflow |
| Merge Strategy | rules/merge-strategy.md |
HIGH | Rebase-first, conflict resolution, force-with-lease |
| History Hygiene | rules/history-hygiene.md |
HIGH | Squash WIP, fixup commits, clean history |
| Recovery | rules/recovery-reflog.md |
CRITICAL | Reflog recovery for lost commits and branches |
| Recovery | rules/recovery-reset.md |
CRITICAL | Safe vs dangerous reset modes |
| Recovery | rules/recovery-stash.md |
HIGH | Stash management and dropped stash recovery |
| Stacked PRs | rules/stacked-pr-workflow.md |
HIGH | Stack planning, PR creation, dependency tracking |
| Stacked PRs | rules/stacked-pr-rebase.md |
HIGH | Rebase management, force-with-lease, retargeting |
| Monorepo | rules/monorepo-context.md |
MEDIUM | --add-dir, per-service CLAUDE.md, workspace detection |
Total: 9 rules across 6 categories
References
Checklists
- Branch Checklist - Pre-flight checks before creating branches
- Pre-Commit Checklist - Validation before committing
Weekly Installs
20
Repository
yonatangross/sk…e-pluginGitHub Stars
95
First Seen
Jan 21, 2026
Security Audits
Installed on
claude-code19
antigravity18
gemini-cli18
opencode18
trae17
github-copilot17