O que git-squash faz?
Compressão inteligente de commits git com detecção automática de commits triviais via heurísticas de mensagem, diff e tempo
Visão Geral
Esta skill automatiza o processo de squash de commits git, identificando commits que são considerados "triviais" (como correções de digitação, ajustes de formatação, pequenos reparos) usando heurísticas baseadas em:
- Conteúdo da mensagem do commit: Palavras-chave como "fix", "typo", "wip", "tmp"
- Tamanho do diff: Commits com alterações muito pequenas ou apenas whitespace
- Tempo entre commits: Commits feitos em sequência rápida (ex: intervalo < 5 minutos)
Como usar
Pré-requisitos
- Git instalado localmente
- Permissão de escrita no repositório atual
Comandos
git-squash [--interactive] [--num-commits N]
Parâmetros:
--interactive: Revisar e confirmar cada squash antes de executar--num-commits N: Número de commits recentes a analisar (padrão: 10)
Exemplo
$ git-squash --interactive --num-commits 20
Analisando commits...
Commit 1: "fix typo" (trivial)
Commit 2: "wip" (trivial)
Commit 3: "Add login feature" (não trivial)
Deseja esmagar commits 1 e 2? [S/n]
Detalhes Técnicos
A skill usa um algoritmo de heurística ponderada:
- Pontuação de mensagem: 0.4 peso se a mensagem contiver marcadores triviais
- Pontuação de diff: 0.3 peso se o diff for menor que 10 linhas ou apenas whitespace
- Pontuação de tempo: 0.3 peso se o intervalo entre commits for < 5 minutos
Se a pontuação combinada exceder 0.7, o commit é marcado como trivial.
Plataformas Suportadas
- Claude Code
- Cursor
- Codex
License
MIT