skills/autumnsgrove/git-advanced/SKILL.md
Advanced Git operations and workflows including interactive rebasing, conflict resolution, history manipulation, bisecting for bugs, cherry-picking, reflog recovery, and branch management strategies. Use for: (1) Interactive rebasing and commit cleanup, (2) Complex merge conflict resolution, (3) Git bisect for bug hunting, (4) History rewriting and cleanup, (5) Branch strategy implementation (Git Flow, trunk-based), (6) Recovering lost commits with reflog
npx skillsauth add aiskillstore/marketplace git-advancedInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Master advanced Git workflows for complex version control scenarios. This skill covers sophisticated operations beyond basic commits and merges, including interactive rebasing, advanced conflict resolution, history manipulation, and strategic branch management.
Use this skill when you need to:
# Rebase last 5 commits interactively
git rebase -i HEAD~5
# Rebase onto main branch
git rebase -i main
# Continue after resolving conflicts
git rebase --continue
# Abort and return to original state
git rebase --abort
# Accept ours (current branch)
git checkout --ours <file>
# Accept theirs (incoming branch)
git checkout --theirs <file>
# List conflicted files
git diff --name-only --diff-filter=U
# Mark as resolved
git add <file>
# Start bisect session
git bisect start
git bisect bad
git bisect good <commit-hash>
# Automate with test script
git bisect run ./test-script.sh
# End bisect session
git bisect reset
# Apply specific commit
git cherry-pick <commit-hash>
# Cherry-pick without committing
git cherry-pick -n <commit-hash>
# Cherry-pick range of commits
git cherry-pick A^..B
# View reflog history
git reflog
# Recover lost commit
git checkout -b recovery <commit-hash>
# Reset to previous state
git reset --hard HEAD@{2}
When to Use:
Steps:
# 1. Start interactive rebase for last N commits
git rebase -i HEAD~5
# Interactive editor opens with commit list
# Modify commands to reorganize history
Rebase Commands:
pick (p): Keep commit as-isreword (r): Keep commit, edit messageedit (e): Keep commit, stop to amendsquash (s): Combine with previous commit, keep messagefixup (f): Combine with previous commit, discard messagedrop (d): Remove commit entirelyExample:
# Before
pick abc1234 Add feature X
pick def5678 Fix typo
pick ghi9012 WIP commit
pick jkl3456 Update documentation
# After cleanup
pick abc1234 Add feature X
fixup def5678 Fix typo
drop ghi9012 WIP commit
reword jkl3456 Update documentation
Safety Tips:
git branch backupgit reflog if something goes wronggit push --force-with-leaseFor detailed examples and advanced techniques, see examples/interactive_rebase.md.
Understanding Conflict Markers:
<<<<<<< HEAD (Current Change)
Your code from current branch
=======
Their code from merging branch
>>>>>>> branch-name (Incoming Change)
Resolution Process:
# 1. Identify conflicts
git status
# 2. Choose resolution strategy:
# Strategy A: Manual resolution
vim <file> # Edit between markers
git add <file>
# Strategy B: Accept one side
git checkout --ours <file> # Keep yours
git checkout --theirs <file> # Keep theirs
git add <file>
# Strategy C: Use merge tool
git mergetool
# 3. Continue operation
git merge --continue
# or
git rebase --continue
Three-Way Diff:
# Show what YOU changed
git diff --ours <file>
# Show what THEY changed
git diff --theirs <file>
# Show common ancestor
git diff --base <file>
For common conflict patterns and solutions, see examples/conflict_resolution.md.
Scenario: Bug exists in current version, find which commit introduced it.
Manual Bisect:
# 1. Start bisect
git bisect start
# 2. Mark current state as bad
git bisect bad
# 3. Mark known good commit
git bisect good v1.0.0
# 4. Test the code (Git checks out middle commit)
# Run app, check if bug exists
# 5. Mark result
git bisect bad # If bug exists
git bisect good # If bug doesn't exist
# Repeat until Git finds first bad commit
# 6. End bisect
git bisect reset
Automated Bisect:
# Create test script (test.sh)
#!/bin/bash
npm test
exit $?
# Run automated bisect
git bisect start
git bisect bad
git bisect good v1.0.0
git bisect run ./test.sh
# Git automatically finds bad commit
git bisect reset
Quick Cleanup:
# Use helper script
bash scripts/git_helper.sh cleanup-branches
# Or manual cleanup
git branch --merged main | grep -v "\*\|main\|develop" | xargs git branch -d
git fetch --prune
Stale Branch Detection:
# Show branches with last commit date
for branch in $(git branch -r | grep -v HEAD); do
echo -e "$(git show --format="%ci %cr" $branch | head -n 1)\t$branch"
done | sort -r
For detailed branch management strategies, see references/branch-management.md.
Recover Deleted Branch:
# View reflog
git reflog
# Find commit where branch was deleted
# Restore branch
git checkout -b feature-x <commit-hash>
Undo Bad Reset:
# Accidentally ran: git reset --hard HEAD~5
# View reflog
git reflog
# Restore previous state
git reset --hard HEAD@{1}
Recover Lost Commits:
# Find dangling commits
git fsck --lost-found
# Cherry-pick recovered commit
git cherry-pick <lost-commit-hash>
For comprehensive recovery techniques, see references/reflog-recovery.md.
This skill supports implementing various branching strategies. Choose based on your team's needs:
Best for: Projects with scheduled releases, multiple production versions
Branch Types:
main: Production-ready codedevelop: Integration branchfeature/*: New featuresrelease/*: Release preparationhotfix/*: Production fixesQuick Start:
# Feature development
git checkout develop
git checkout -b feature/user-auth
# Work on feature
git checkout develop
git merge --no-ff feature/user-auth
Best for: Continuous deployment, fast-moving teams
Principles:
Quick Start:
# Create short-lived branch
git checkout main
git checkout -b feature/quick-fix
# Work and merge same day
git checkout main
git merge feature/quick-fix
For complete branch strategy workflows, see examples/branch_strategies.md.
git branch backupgit statusgit log --onelinefeature/user-loginFor comprehensive best practices, see references/best-practices.md.
# If conflicts are too complex
git rebase --abort
# Start over with different approach
git merge --no-ff <branch>
# Always check reflog first
git reflog
# Find and recover
git checkout -b recovery <commit-hash>
# Create branch from detached HEAD
git checkout -b new-branch-name
# Or go back to branch
git checkout main
# Only if you're certain and branch is not shared
git push --force-with-lease
# Safer: Create new branch
git checkout -b feature-v2
git push origin feature-v2
For detailed troubleshooting, see references/troubleshooting.md.
examples/interactive_rebase.md: Step-by-step rebase examples with scenariosexamples/conflict_resolution.md: Common conflict patterns and solutionsexamples/branch_strategies.md: Complete Git Flow and trunk-based workflowsreferences/branch-management.md: Branch cleanup automation and strategiesreferences/reflog-recovery.md: Recovery techniques and history rewritingreferences/best-practices.md: Comprehensive best practices and quality standardsreferences/troubleshooting.md: Common issues and emergency recoveryscripts/git_helper.sh: Branch cleanup and conflict resolution utilities# Interactive rebase
git rebase -i HEAD~N
# Abort operations
git rebase --abort
git merge --abort
git cherry-pick --abort
# View history
git log --oneline --graph --all
git reflog
# Conflict resolution
git checkout --ours <file>
git checkout --theirs <file>
# Recovery
git fsck --lost-found
git reflog
# Cleanup
git branch --merged | xargs git branch -d
git fetch --prune
git branch backup--force-with-leaseMaster these advanced Git operations to maintain clean history, resolve conflicts efficiently, and manage complex development workflows with confidence.
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.