Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)41 mil · #4847

git-advanced-workflows

Ajuda seu agente a usar o Git de forma avançada. Ele mantém o histórico do projeto limpo e ajuda a recuperar de qualquer situação.

O que ela faz

Esta ferramenta ajuda a gerenciar o histórico do Git de forma avançada. Ela permite organizar commits, aplicar mudanças específicas entre projetos e encontrar erros rapidamente.

Quando usar

  • ✓Organizar o histórico de commits antes de juntar códigos.
  • ✓Aplicar uma correção específica de um projeto para outro.
  • ✓Descobrir qual alteração causou um problema no código.

Exemplo do que pedir para a IA

“Como posso reorganizar os últimos 5 commits para corrigir mensagens e juntar alguns deles?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/developer-essentials/skills/git-advanced-workflows/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/developer-essentials/skills/git-advanced-workflows/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ela usa comandos avançados do Git como 'rebase' para editar o histórico, 'cherry-pick' para copiar commits e 'bisect' para encontrar bugs. Também ajuda a gerenciar múltiplos trabalhos ao mesmo tempo com 'worktrees' e a recuperar arquivos perdidos com 'reflog'.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill git-advanced-workflows

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/developer-essentials/skills/git-advanced-workflows/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Fluxos de Trabalho Avançados do Git

Domine técnicas avançadas do Git para manter um histórico limpo, colaborar de forma eficaz e se recuperar de qualquer situação com confiança.

Quando Usar Esta Habilidade

  • Limpar o histórico de commits antes de mesclar
  • Aplicar commits específicos entre branches
  • Encontrar commits que introduziram bugs
  • Trabalhar em várias funcionalidades simultaneamente
  • Recuperar-se de erros do Git ou commits perdidos
  • Gerenciar fluxos de trabalho de branches complexos
  • Preparar Pull Requests (PRs) limpos para revisão
  • Sincronizar branches divergentes

Conceitos Principais

1. Rebase Interativo

O rebase interativo é a faca suíça da edição do histórico do Git.

Operações Comuns:

  • pick: Manter o commit como está
  • reword: Alterar a mensagem do commit
  • edit: Modificar o conteúdo do commit
  • squash: Combinar com o commit anterior
  • fixup: Semelhante ao squash, mas descarta a mensagem
  • drop: Remover o commit completamente

Uso Básico:

# Rebase last 5 commits
git rebase -i HEAD~5

# Rebase all commits on current branch
git rebase -i $(git merge-base HEAD main)

# Rebase onto specific commit
git rebase -i abc123

2. Cherry-Picking

Aplicar commits específicos de um branch para outro sem mesclar branches inteiros.

# Cherry-pick single commit
git cherry-pick abc123

# Cherry-pick range of commits (exclusive start)
git cherry-pick abc123..def456

# Cherry-pick without committing (stage changes only)
git cherry-pick -n abc123

# Cherry-pick and edit commit message
git cherry-pick -e abc123

3. Git Bisect

Busca binária através do histórico de commits para encontrar o commit que introduziu um bug.

# Start bisect
git bisect start

# Mark current commit as bad
git bisect bad

# Mark known good commit
git bisect good v1.0.0

# Git will checkout middle commit - test it
# Then mark as good or bad
git bisect good  # or: git bisect bad

# Continue until bug found
# When done
git bisect reset

Bisect Automatizado:

# Use script to test automatically
git bisect start HEAD v1.0.0
git bisect run ./test.sh

# test.sh should exit 0 for good, 1-127 (except 125) for bad

4. Worktrees

Trabalhe em vários branches simultaneamente sem precisar usar stash ou trocar de branch.

# List existing worktrees
git worktree list

# Add new worktree for feature branch
git worktree add ../project-feature feature/new-feature

# Add worktree and create new branch
git worktree add -b bugfix/urgent ../project-hotfix main

# Remove worktree
git worktree remove ../project-feature

# Prune stale worktrees
git worktree prune

5. Reflog

Sua rede de segurança - rastreia todos os movimentos de referências, até mesmo commits deletados.

# View reflog
git reflog

# View reflog for specific branch
git reflog show feature/branch

# Restore deleted commit
git reflog
# Find commit hash
git checkout abc123
git branch recovered-branch

# Restore deleted branch
git reflog
git branch deleted-branch abc123

Padrões Detalhados e Exemplos Práticos

A documentação detalhada dos padrões está em references/details.md. Leia esse arquivo quando a navegação de nível superior for insuficiente.

Melhores Práticas

  1. Sempre Use --force-with-lease: Mais seguro que --force, evita sobrescrever o trabalho de outras pessoas
  2. Rebase Apenas Commits Locais: Não faça rebase em commits que já foram enviados (pushed) e compartilhados
  3. Mensagens de Commit Descritivas: O você do futuro agradecerá ao você do presente
  4. Commits Atômicos: Cada commit deve ser uma única mudança lógica
  5. Teste Antes do Force Push: Garanta que a reescrita do histórico não quebrou nada
  6. Esteja Ciente do Reflog: O reflog é sua rede de segurança, mas as entradas para commits que não são alcançáveis a partir da ponta atual expiram após 30 dias por padrão (gc.reflogExpireUnreachable), e as entradas alcançáveis após 90 dias (gc.reflogExpire)
  7. Crie um Branch Antes de Operações de Risco: Crie um branch de backup antes de rebases complexos
# Safe force push
git push --force-with-lease origin feature/branch

# Create backup before risky operation
git branch backup-branch
git rebase -i main
# If something goes wrong
git reset --hard backup-branch

Armadilhas Comuns

  • Rebase de Branches Públicos: Causa conflitos de histórico para colaboradores
  • Force Push Sem Lease: Pode sobrescrever o trabalho de um colega de equipe
  • Perder Trabalho no Rebase: Resolva conflitos cuidadosamente, teste após o rebase
  • Esquecer de Limpar Worktrees: Worktrees órfãos consomem espaço em disco
  • Não Fazer Backup Antes de Experimentar: Sempre crie um branch de segurança
  • Bisect em Diretório de Trabalho Sujo: Faça commit ou stash antes de usar o bisect

Comandos de Recuperação

# Abortar operações em andamento

…
Perguntas frequentes

O que é 'rebase'?

É como reescrever a história dos seus commits. Você pode mudar mensagens, juntar commits ou remover alguns que não são mais necessários, deixando o histórico mais limpo.

Para que serve 'cherry-pick'?

Serve para pegar um commit específico de um ramo (branch) e aplicá-lo em outro ramo, sem precisar juntar todos os commits de uma vez.

O que é 'bisect'?

É uma ferramenta que usa busca binária para te ajudar a encontrar exatamente qual commit introduziu um bug no seu código, testando automaticamente várias versões.

Detalhes

Descrição original do autor

Master advanced Git workflows including rebasing, cherry-picking, bisect, worktrees, and reflog to maintain clean history and recover from any situation. Use when managing complex Git histories, collaborating on feature branches, or troubleshooting repository issues.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4847
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas