git-limpa-branches
v1.0.7
Published
Utilitário para limpeza segura de branches Git
Maintainers
Readme
Git-Limpa-Branches
Utilitário para limpeza segura de branches Git. Identifica e remove automaticamente branches que já foram mesclados aos ramos principais, preservando branches protegidos e solicitando confirmação do usuário para cada operação.
🔍 O Problema
Com o tempo, repositórios Git acumulam dezenas ou até centenas de branches obsoletos que já foram mesclados aos ramos principais. Isso dificulta a navegação, aumenta o tamanho do repositório e torna mais complexo o gerenciamento de branches ativos.
📊 Antes e Depois

O diagrama acima mostra como Git-Limpa-Branches simplifica seu repositório, removendo branches mesclados e mantendo apenas branches ainda em desenvolvimento e os branches protegidos.
🚀 A Solução
Git-Limpa-Branches analisa automaticamente seu repositório para:
- ✅ Identificar branches que foram completamente mesclados aos ramos principais
- ✅ Preservar branches importantes (main, master, develop)
- ✅ Detectar e manter branches que contêm alterações não mescladas
- ✅ Solicitar confirmação antes de executar qualquer operação
- ✅ Limpar tanto branches locais quanto remotos
📦 Instalação e Uso
Uso Rápido com npx
# Execute diretamente via npx (sem instalação)
npx git-limpa-branchesInstalação Global
# Instale globalmente
npm install -g git-limpa-branches
# Execute em qualquer repositório Git
git-limpa-branchesInstalação Local
# Instale localmente em seu projeto
npm install git-limpa-branches --save-dev
# Execute via npx
npx git-limpa-branches🛠️ Opções de Linha de Comando
Você pode personalizar a execução do Git-Limpa-Branches através de parâmetros CLI:
pnpx git-limpa-branches -h📖 Ajuda
Exibe a descrição do utilitário e as opções disponíveis:
git-limpa-branches -h🛡️ Especificando Branches Protegidos
Defina explicitamente quais branches devem ser protegidos (ou seja, não serão excluídos) usando a opção --protegidos ou -p, com os nomes separados por vírgula:
git-limpa-branches --protegidos=main,producao,homologacaoou
git-limpa-branches -p main,releaseSe nenhum valor for informado, o padrão será:
main,master,develop,gh-pages💻 Desenvolvimento
Para desenvolver e contribuir com o projeto:
# Clone o repositório
git clone https://github.com/seu-usuario/git-limpa-branches.git
# Entre no diretório
cd git-limpa-branches
# Instale as dependências
pnpm install
# Compile o TypeScript em modo de observação
pnpm dev
# Execute testes
pnpm test
# Execute testes em modo de observação
pnpm test:watch
# Compile para produção
pnpm build
# Execute localmente
pnpm startEstrutura do Projeto
git-limpa-branches/
├── dist/ # Código compilado
├── src/ # Código fonte
│ ├── git-limpa-branches.ts # Arquivo principal
│ └── git-limpa-branches.test.ts # Testes
├── docs/ # Documentação e imagens
├── package.json # Configuração do pacote
└── tsconfig.json # Configuração do TypeScriptO script irá:
- Atualizar a lista de branches remotos (com sua confirmação)
- Analisar cada branch para determinar se pode ser excluído com segurança
- Apresentar um resumo claro dos branches que podem ser removidos
- Solicitar confirmação para cada operação de exclusão
🔒 Branches Protegidos
Por padrão, os seguintes branches nunca serão excluídos:
- main
- master
- develop
Você também pode sobrescrever essa lista com a opção --protegidos.
🧪 Testes
# Execute os testes unitários
npm test⚙️ Personalização
Para adicionar ou remover branches protegidos por padrão, edite a constante BRANCHES_PROTEGIDOS no arquivo git-limpa-branches.js:
// Branches protegidos
const BRANCHES_PROTEGIDOS = ['main', 'master', 'develop', 'homologacao', "gh-pages"];📋 Requisitos
- Node.js instalado
- Git instalado e configurado no sistema
- Permissões para excluir branches remotos (se desejar usar essa funcionalidade)
🛡️ Segurança
Este utilitário foi projetado com segurança em mente:
- Nunca exclui branches protegidos
- Preserva branches com alterações não mescladas
- Solicita confirmação explícita antes de cada ação
- Pode ser interrompido a qualquer momento
- Mostra claramente o que está prestes a ser feito
🤝 Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para:
- Abrir issues relatando bugs ou sugerindo melhorias
- Enviar pull requests com correções ou novas funcionalidades
- Melhorar a documentação
📝 Licença
MIT
