2.1.1 • Published 7 months ago

@fean-developer/auto-squash v2.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
7 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

7 months ago

2.1.0

7 months ago

2.0.0

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago