Receber por email
← Voltar para o catálogo

git-advanced

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

21estrelas
Atualizado há 1 ano

Ver no GitHub ↗

Como adicionar

/plugin marketplace add AutumnsGrove/ClaudeSkills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/git-advanced-autumnsgrove/svg)](https://www.skillteca.com.br/skills/git-advanced-autumnsgrove)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Advanced Git Operations

Overview

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:

  • Clean up messy commit history before code review
  • Resolve complex merge conflicts strategically
  • Hunt down bugs with binary search (bisect)
  • Recover lost commits or undo mistakes
  • Implement team branching strategies
  • Rewrite history safely

Core Capabilities

Interactive Rebasing

  • Reorder commits for logical history
  • Squash multiple commits into one
  • Edit commit messages retroactively
  • Split commits into smaller pieces
  • Remove unwanted commits from history

Conflict Resolution

  • Strategic merge conflict handling
  • Three-way merge understanding
  • Ours vs theirs strategy selection
  • Conflict marker interpretation
  • Partial file staging during conflicts

Git Bisect

  • Binary search for bug introduction
  • Automated bisect with scripts
  • Good/bad commit identification
  • Efficient debugging of regressions

History Manipulation

  • Amend commits safely
  • Filter-branch operations
  • BFG Repo-Cleaner for large files
  • Rewrite history with caution
  • Preserve attribution and dates

Branch Strategies

  • Git Flow workflow
  • Trunk-based development
  • Feature branch workflows
  • Release branch management
  • Hotfix procedures

Quick Command Reference

Interactive Rebase

# 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

Conflict Resolution

# 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>

Git Bisect

# 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

Cherry-Pick

# 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

Reflog Recovery

# View reflog history
git reflog

# Recover lost commit
git checkout -b recovery <commit-hash>

# Reset to previous state
git reset --hard HEAD@{2}

Core Workflows

1. Interactive Rebase Workflow

When to Use:

  • Clean up messy commit history before pushing
  • Combine "WIP" or "fix typo" commits
  • Reorder commits for logical progression
  • Split large commits into focused changes

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-is
  • reword (r): Keep commit, edit message
  • edit (e): Keep commit, stop to amend
  • squash (s): Combine with previous commit, keep message
  • fixup (f): Combine with previous commit, discard message
  • drop (d): Remove commit entirely

Example:

# 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:

  • Never rebase commits already pushed to shared branches
  • Create backup branch: git branch backup
  • Use git reflog if something goes wrong
  • Force push carefully: git push --force-with-lease

For detailed examples and advanced techniques, see examples/interactive_rebase.md.

2. Conflict Resolution Workflow

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.

3. Git Bisect for Bug Hunting

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

4. Branch Management

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.

5. Reflog Recovery

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.

Branch Strategy Implementation

This skill supports implementing various branching strategies. Choose based on your team's needs:

Git Flow

Best for: Projects with scheduled releases, multiple production versions

Branch Types:

  • main: Production-ready code
  • develop: Integration branch
  • feature/*: New features
  • release/*: Release preparation
  • hotfix/*: Production fixes

Quick 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

Trunk-Based Development

Best for: Continuous deployment, fast-moving teams

Principles:

  • Single main branch
  • Short-lived feature branches (< 1 day)
  • Frequent integration
  • Feature flags for incomplete work

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.

Best Practices

Before Rebase

  • Create backup branch: git branch backup
  • Ensure working directory is clean: git status
  • Know your commit history: git log --oneline
  • Never rebase publ
Compartilhar X LinkedIn