2.1.1 • Published 11 months ago

@fean-developer/auto-squash v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

npm license downloads

🧪 Auto Squash

Script de linha de comando para fazer squash automático de commits no Git.

📌 O que ele faz?

Este script facilita o processo de squash de commits consecutivos em uma única linha de comando. Ele:

  • Identifica automaticamente os commits feitos desde uma branch default;
  • Permite limitar a quantidade de commits a serem unificados;
  • Suporta o modo forçado para ignorar a branch base e unificar os últimos n commits;
  • Realiza git reset --soft até o commit base e cria um novo commit com a mensagem informada.

Ideal para manter o histórico de commits limpo antes de fazer merge de branches.

📦 Instalação

npm install -g @fean-developer/auto-squash

🚀 Uso

auto-squash -c <quantidade> -m "<mensagem do commit>"
auto-squash -b <base-branch> -c <quantidade> -m "<mensagem do commit>"

Parâmetros disponíveis:

ParâmetroDescrição
-b, --base-branchDefine a partir da branch base, main, develop, master, ou base especifica
-m, commit-messageMensagem do commit squash (padrão: feat: squash automático)
-c, --countQuantidade de commits a fazer squash (ex: 4)
--forceForça o squash dos últimos commits ignorando a base

💡 Exemplos

  • Squash dos commits desde a branch default (base), base pode ser especificada: se algum merge for encontrado entre a branch base e a feature o squash não acontecera. por segurança!

  • Squash definindo a branch base

  • Exemplos:
      fean-pipeline git:(feature/MINHA_BRANCH) auto-squash -b TESTE_A  -m "Criando um novo commit até minha base especificada"
      31fc7a4 (HEAD -> feature/MINHA_BRANCH) Validando parametros dos arquivos
      4d33f3e Validando parametros dos arquivos de configuração | arquivo HOM  quebrado
      00b977b Validando parametros dos arquivos de configuração | arquivo HOM  quebrado
      61cc73e Validando parametros dos arquivos de configuração | arquivo HOM  quebrado
      e859944 Validando parametros dos arquivos de configuração | arquivo PRD quebrado
      11758da Validando parametros dos arquivos de configuração
      98d3c8e Ajuste gerais e de lint
      5979e98 Ajuste gerais e de lint
      1e0d387 Ajuste gerais e de lint
      f4fddc6 Ajustando trigger para main
      0c8ad03 removendo strategy
      92d9377 removendo strategy
      71f032a ajustando o runner adequado.
      4f5fb65 (TESTE_A) Alterando parametros
      c1454e3 Alterando parametro transactionPerSecond
  • Resultado

      Base detectada: TESTE_A
      📌 Branch atual: feature/MINHA_BRANCH
      🔎 Usando base: TESTE_A
      Fazendo squash de 13 commits:
      1. 71f032a283fe3d...........................
      2. 92d9377d428bca...........................
      3. 0c8ad0379e52ac...........................
      4. f4fddc6b9d1897...........................
      5. 1e0d387cabea57...........................
      6. 5979e983a16e24...........................
      7. 98d3c8e81fe51e...........................
      8. 11758da4ca3ee8...........................
      9. e859944db1372f...........................
      10. 61cc73ee0dadf...........................
      11. 00b977bc1d441...........................
      12. 4d33f3ee9d4df...........................
      13. 31fc7a463e030...........................
      🔧 Resetando com --soft até o commit base: 4f5fb657f8f2f...........................
      ✅ Novo commit criado com a mensagem: "Criando um novo commit até minha base especificada"
      ✅ Squash concluído com sucesso!
  • Squash dos últimos 5 commits, ignorando a base:
  • Exemplos:

      31fc7a4 (HEAD -> feature/MINHA_BRANCH) Criando um novo commit squash 5 commits
      4d33f3e Validando parametros dos arquivos de configuração | arquivo HOM  quebrado
      00b977b Validando parametros dos arquivos de configuração | arquivo HOM  quebrado
      61cc73e Validando parametros dos arquivos de configuração | arquivo HOM  quebrado
      e859944 Validando parametros dos arquivos de configuração | arquivo PRD quebrado
      11758da Validando parametros dos arquivos de configuração
      98d3c8e Ajuste gerais e de lint
      5979e98 Ajuste gerais e de lint
      1e0d387 Ajuste gerais e de lint
      f4fddc6 Ajustando trigger para main
      0c8ad03 removendo strategy
      92d9377 removendo strategy
      71f032a ajustando o runner adequado.
  • Resultado

        fean-pipeline git:(feature/MINHA_BRANCH) auto-squash -c 5 -m "Criando um novo commit squash 5 commits"
        📌 Branch atual: feature/MINHA_BRANCH
        🔎 Usando base: develop
        Fazendo squash de 5 commits:
        1. e859944db1372...........................
        2. 61cc73ee0dadf...........................
        3. 00b977bc1d441...........................
        4. 4d33f3ee9d4df...........................
        5. 31fc7a463e030...........................
        🔧 Resetando com --soft até o commit base: 11758da4ca3ee...........................
        ✅ Novo commit criado com a mensagem: "Criando um novo commit squash 5 commits"
        ✅ Squash concluído com sucesso!

Contribuições são bem-vindas! Abra uma issue ou PR caso tenha ideias ou melhorias. 💬

⚠️ Lembre-se: o histórico local será reescrito. Use com cautela se sua branch já foi compartilhada.


2.1.1

11 months ago

2.1.0

11 months ago

2.0.0

11 months ago

1.0.1

11 months ago

1.0.0

11 months ago